Northern Digital Inc. (NDI Shelburne)
When the world’s top medical device OEMs and academic institutes need real-time medical instrument navigation, they call NDI. Why? Because no one can rival the accuracy and reliability of our optical measurement and electromagnetic tracking solutions. NDI team members are passionate about delivering innovative technology that will help to unlock new procedures and solutions. Interested in becoming a valued member of the NDI team? We’re growing and looking for great people to join us.
Our team of professionals at the Northern Digital Inc. (NDI) office located in Shelburne, Vermont is currently recruiting for a Firmware Developer hybrid role (Shelburne Office and Work from Home) with experience in in the development of embedded systems for use in medical devices and simulations.
How Will You Make an Impact:
As a member of a small dynamic team of engineers you will be responsible for detailed design, development, integration, and release of the real-time embedded software that powers NDI’s advanced measurement systems. The work includes development of real-time data acquisition, digital signal processing and communication protocols. The successful candidate will be highly organized, results-focused, and effective at detailed software design, implementation and debugging.
What you Will Be Doing:
- Participate in discussions with internal/external customers to ensure software requirements are fully understood and recorded
- Collaborate with the systems engineer, software architect and other software engineers to understand and document software specifications
- Design and generate embedded software to NDI’s internal software development standards, and produce associated technical documentation to meet design control requirements
- Participate in software peer reviews
- Integrate embedded software with the target hardware
- Ensure completion is timely, striving to meet or exceed project milestones
- As needed, mentor more junior software developers
Ready To Make a Difference?
What You will Bring To the Role:
- A willingness to learn. New languages, new frameworks, new tools. The software profession is constantly changing. We need someone who can change with it.
- A willingness to experiment (and fail). We don’t always know what we need. We want someone who can propose and test a solution. And then other solution, and another, until one works.
- A willingness to lead. Not necessarily a “follow me” leader (but hey, that’s good too), but someone who is willing to take the lead on new technologies. Someone who says “I’ve never heard of that before, but I can be the one to figure it out and then explain it to the others.”
- Solid debugging skills. Lots of people can write code. We need someone who can figure out why their code is not working and fix it.
- Bachelor’s degree in Computer Science, Engineering, or equivalent
- 5+ years of current hands-on experience with embedded software design and implementation
- Proficient in C/C++
- Experience developing multi-threaded embedded applications
- Experience with commercial RTOS packages
- ARM processor experience
- Working knowledge of communication protocols –USART, I2C, I2S, SPI
- Good team, personal organization, communication, and leadership skills
- Excellent problem solving and trouble-shooting skills
Desired Characteristics/Additional Assets:
- Experience with CMake / Make / SCons is considered a plus
- Experience with Atlassian Bamboo and Bitbucket is considered a plus
- Familiar with JTAG and Segger J-link or similar debugging tools