Firmware Developer

When the world’s top equipment manufacturers and research institutes need to track something, they call NDI. Why? Because no one can beat the accuracy, precision, and reliability of our 3D measurement and motion tracking solutions. For over 35 years we’ve helped our customers in medicine, manufacturing, and academia bring optical and electromagnetic tracking technologies to image-guided surgery, automotive assembly, surgical simulation, neuroscience research, and so much more.

Although our technology has helped pioneer many industry firsts, we’re not content to rest on our laurels. With four global offices and 200+ employees, we’re still going strong, as motivated and passionate as ever to break new ground in 3D measurement technology. We’re a smart, talented, hardworking team – the best at what we do. Won’t you join us?

About the Role:

We are looking for a Firmware Developer to join our R&D team in the development of embedded software related to high-speed image and signal processing for use in our advanced medical and AR/VR tracking systems. As a member of a dynamic, cross-functional team of engineers, you will be responsible for design, development, integration, and release of real-time embedded control firmware, processing algorithms, drivers and communication protocols that power NDI’s advanced measurement and motion tracking systems.

Reporting to the Senior Manager, Software Development the successful candidate will be located in Waterloo Ontario.

What You’ll Be Doing:

  • Actively participate in discussions that drive product level design decisions with the development team including advanced research, hardware, and mechanical engineers.  Explore opportunities to optimize product metrics and enhance system level performance.
  • Design and develop embedded software to NDI’s internal software development standards
  • Integrate embedded software with FPGAs and the target hardware
  • Integrate embedded system with the related host-side drivers and applications
  • Ensure completion is timely, striving to meet or exceed project milestones

What You’ll Bring to the Role:

  • Bachelor’s degree in Electrical or Computer Engineering, Computer Science or equivalent
  • 5+ years of recent hands-on experience coding and software design
  • Proficient in C/C++, object-oriented code and developing multithreaded applications
  • Experience with commercial RTOS packages and/or embedded Linux
  • Experience with FPGA design would be an asset
  • Hands-on experience with tools such as oscilloscopes and logic analyzers
  • Strong problem solving and organization skills
  • Ability to communicate well both in writing and orally

Desired Characteristics/Additional Assets:

  • Experience with ARM-based SOC processors and development tools
  • Experience working with FPGAs and/or ASICs
  • A working understanding of SPORT, I2C, and SPI communication channels, as well as DMAs and high-speed data acquisition
  • Experience with Board Support Packages

Why NDI:

  • Exciting and challenging work based on cool technology
  • Stable company that genuinely respects the life-work balance
  • Generous employer-paid benefits package
  • Casual work environment
  • Company-wide bonus program
  • Employee stock purchase plan
  • Employee social and engagement events throughout the year
  • Holiday shut-down
  • Free onsite parking
  • Growing global company with offices in Waterloo, Vermont, Germany, and Hong Kong
  • Close to GRT and ION stops
  • Located just off the Conestoga Expressway, close to Conestoga Mall, the St. Jacobs Farmers’ Market, and other retail amenities

How to Apply

It all starts with your online application. Please upload your resume and cover letter (optional) as a Word or PDF file. If you require any assistance during the application process, please contact us at: