Ciena is a global leader in high-speed connectivity and is looking for an Embedded Software Engineer to join their ONU firmware development team. The role involves designing, implementing, and maintaining firmware across the full software stack while collaborating with hardware engineers and systems architects to deliver production-quality firmware for high-reliability products.
Responsibilities:
- Develop and maintain embedded Linux firmware on OpenWrt based ONU systems
- Implement and extend PON subsystem software: XGS-PON registration, OMCI agent, eOMCI, Active-Active coordination, and MIB synchronization
- Integrate and configure the Ethernet switching subsystems on Ciena hardware, VLAN operations, port management, QoS (traffic classification, scheduling, shaping), and LACP
- Develop U-Boot bootloader extensions, firmware upgrade flows, and firmware version management
- Implement and maintain security features: TPM 2.0 integration, Secure Boot, OMCI-level PON encryption
- Write and maintain OpenWrt package Makefiles, custom feeds, and build scripts
- Develop and apply patches to the OpenWrt/prplOS base for platform-specific capabilities
- Participate in code review, write unit and integration tests, and debug issues from lab bring-up through field deployment
- Maintain technical documentation and component-level design notes
Requirements:
- Bachelor's or Master's degree in Computer Engineering, Electrical Engineering, Computer Science, or a closely related field
- 3–5 years of relevant professional experience in embedded software or firmware development
- Proficient in C for embedded/systems programming; familiarity with C++ a plus
- Hands-on experience with embedded Linux (kernel drivers, device trees, init systems, cross-compilation)
- Familiarity with OpenWrt or a comparable embedded Linux build system (Yocto, Buildroot)
- Working knowledge of networking fundamentals: Ethernet, VLANs, QoS, LACP, TCP/IP
- Experience with bootloaders (U-Boot preferred) and firmware lifecycle management
- Comfortable using Git, Make, and Linux command-line toolchains
- Experience with PON technologies (XGS-PON, GPON) and the OMCI protocol stack (ITU-T G.988)
- Familiarity with Marvell/Broadcom switching components or equivalent merchant silicon SDK for switching/routing ASICs
- Experience integrating TPM 2.0 and/or Secure Boot in embedded platforms
- Knowledge of NAND flash memory layouts, UBI/UBIFS, and MTD subsystems
- Experience with inter-process communication mechanisms (ubus, Unix sockets, shared memory)
- Nice to have CAN bus experience