Browse all Ruby on Rails jobs
VIAVI Solutions logo
VIAVI Solutions·Ottawa, Canada·onsite

Firmware Development Engineer

Posted today
Apply now
Ruby on RailsBackend

About the role

What you'll do

  • Develop and maintain embedded firmware for ARM and DSP-based optical test cassettes using C/C++ and embedded Linux.
  • Interface firmware with FPGA co-processors and maintain PCIe bridge FPGA logic for hardware acceleration and bus translation.
  • Design microcontroller firmware for power management, FPGA programming, and chassis control using C.
  • Contribute to Linux kernel and device tree customization, debugging hardware-software integration issues and system services.
  • Collaborate cross-functionally with hardware and software teams to support manufacturing, calibration, and production testing.

What you should know

  • This role requires 7+ years of embedded firmware experience with strong C/C++ skills and hardware interfacing knowledge.
  • Candidates should be comfortable working across the full hardware-software stack including FPGA, microcontrollers, and Linux kernel.
  • The position is onsite in Ottawa, offering exposure to cutting-edge optical test instrumentation and telecom applications.
  • Applicants will engage in complex debugging and multi-threaded real-time signal processing development.
  • Experience with AI-augmented development tools and embedded Linux build environments is a plus.

About the company

  • VIAVI Solutions is a global leader in network test, monitoring, and light management technologies across multiple industries.
  • The company values customer success, collaboration, and innovation to deliver solutions that keep the world connected.
  • VIAVI operates in diverse sectors including telecommunications, aerospace, automotive, and government markets.
  • It is a NASDAQ-listed company with a strong focus on advanced technology and embedded systems.
  • The culture encourages employees to question, collaborate, and push boundaries to delight customers.

Key required skills

CC++ARMDSPFPGAVerilogI2CSPIUARTUSBLinux kernelDevice treeJTAGGitPCIe

Summary generated from the original posting.