Firmware Developer

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.

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 FPGA design would be an asset
  • Hands-on experience with tools such as oscilloscopes and logic analyzers
  • Strong problem solving and organization skills
  • Experience with signal processing and/or sensor fusion
  • Ability to communicate well both in writing and orally

Desired Characteristics/Additional Assets:

  • Experience with commercial RTOS packages and/or embedded Linux
  • Experience with ARM-based SOC processors and development tools
  • 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
  • Growing global company with offices in Waterloo, Vermont, Germany, and Hong Kong
  • 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
  • Deluxe coffee machines with free hot beverages
  • Close to GRT and ION stops

About NDI:

NDI is a global leading innovator and manufacturer of advanced 3D measurement technology systems, with over 45,000 installations worldwide. For over 30 years, the company's optical measurement and electromagnetic tracking solutions have been trusted by the world's foremost organizations and institutes in medicine, industry and academia. From image-guided surgery to aeronautics; from quality assurance to biomechanics research, NDI solutions are used whenever best-in-class measurement accuracy and reliability are required.

Application Instructions:

If you’re interested in furthering your career in a dynamic and innovative organization, please visit where you can apply online!  We thank all candidates for their interest in joining NDI, however, only candidates invited for an interview will be contacted.  Agency calls will not be accepted.  For more information about NDI and this position, please visit our website: