As the global leader in high-speed connectivity, Ciena is 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.
Join Ciena, a global leader in networking systems, services, and software, as an Embedded Software Engineer. Be part of a team that is transforming the way the world communicates by developing reliable, high‑performance embedded software that powers next‑generation networking solutions.
How You Will Contribute:
- Design, implement, and test embedded software features for Linux-based systems running on networking platforms.
- Develop and maintain daemons and services that interface with upper‑layer applications and lower‑level hardware components such as FPGA or BMC.
- Architect and optimize inter-process communication, hardware abstraction layers, and system initialization flows.
- Collaborate with cross-functional teams to ensure seamless integration between embedded software, system applications, and hardware subsystems.
- Participate in code reviews, debugging, and performance tuning across embedded software components.
- Develop and maintain CI/CD pipelines to automate build, test, and integration workflows for embedded platforms.
- Contribute to platform bring-up, board support packages, and system-level feature development.
- Provide technical guidance and foster collaboration across software and hardware engineering teams.
The Must Haves:
- Bachelor’s or Master’s degree in Computer Science or a related technical field.
- Proven experience developing software for embedded Linux systems.
- Strong proficiency in C/C++ and familiarity with Python and Bash for automation and tools.
- Experience developing and debugging Linux daemons, services, and system-level components.
- Solid understanding of Linux internals, systemd, device drivers, and inter‑process communication mechanisms.
- Experience working with hardware interfaces and protocols used with FPGA or BMC subsystems (e.g., I2C, SPI, IPMI, PCIe).
- Familiarity with CI/CD pipelines and automated build and test environments.
- Experience working in Agile software development environments.
Nice to Haves:
- Experience with the Yocto Project or other embedded Linux build frameworks.
- Knowledge of container technologies (e.g., Docker) for development and testing environments.
- Experience with real‑time constraints, hardware abstraction layers, or board bring-up.
- Hands-on experience with debugging tools such as GDB, perf, strace, and logic analyzers.
- Understanding of full-stack system design and interactions between hardware, embedded software, and applications.
- Strong communication skills, including the ability to deliver clear technical updates and documentation.
- Familiarity with Git or other version control systems.
- Ability to work collaboratively within cross‑functional hardware, software, and systems teams.
Not ready to apply? Join our Talent Community to get relevant job alerts straight to your inbox.
At Ciena, we are committed to building and fostering an environment in which our employees feel respected, valued, and heard. Ciena values the diversity of its workforce and respects its employees as individuals. We do not tolerate any form of discrimination.
Ciena is an Equal Opportunity Employer, including disability and protected veteran status.
If contacted in relation to a job opportunity, please advise Ciena of any accommodation measures you may require.