C/C++ Software Engineer
📅 Posted 1d ago
📄 Job Description
Ciena is a global leader in high-speed connectivity, committed to a people-first approach. Our teams enjoy a culture focused on prioritizing a flexible work environment that empowers individual growth, well-being, and belonging. We’re a technology company that leads with our humanity—driving our business priorities alongside meaningful social, community, and societal impact.
About the Role
We are seeking a highly skilled and adaptable C/C++ Software Engineer to join our team. In this role, you will be responsible for designing, developing, and troubleshooting software for embedded systems, focusing on real-time operating systems and networking protocols.
Responsibilities
- Design, develop, and maintain high-performance C/C++ software for embedded systems, primarily on Linux and VxWorks 653 platforms.
- Implement and optimize data structures and algorithms to meet performance and memory constraints.
- Develop and debug interprocess communication mechanisms within embedded environments.
- Contribute to the design and implementation of networking protocols and features.
- Troubleshoot and resolve complex software defects, including those related to embedded operating systems and hardware interactions.
- Collaborate effectively with cross-functional teams to define requirements, design solutions, and integrate software components.
- Participate in all phases of the software development lifecycle, from concept to deployment and maintenance.
- Continuously learn and adapt to new technologies and development methodologies.
- Document software designs, specifications, and test plans.
- Assist in database implementation and integration where applicable.
Requirements
Must Haves
- 2-5 Years of Strong proficiency in C and C++ programming languages.
- 2+ Years of Extensive experience with embedded systems development.
- Demonstrated expertise in embedded operating systems, including Linux and Real-Time Operating Systems (RTOS) such as VxWorks 653.
- Solid understanding of data structures and algorithms.
- Experience with interprocess communication (IPC) mechanisms.
- Knowledge of networking concepts and protocols.
- Proven ability in software design and development methodologies.
- Excellent troubleshooting and debugging skills.
- Strong communication and interpersonal skills, with a proven ability to foster collaboration within a team environment.
Assets
- High degree of adaptability and a willingness to learn new technologies.
- Experience with database implementation is a plus.
- Experience in Python is a plus.
- Experience in Automation is a plus.