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 are currently recruiting for a Software Engineer who is willing to learn and capable to lead in software development for our systems for medical devices and simulations.
How You’ll Make an Impact:
You will be responsible for design and development of software utilities, communication and data processing libraries, and other innovative solutions as required for our OEM partners. As part of a cross-functional R&D group, you will also create data visualization tools for use by the internal NDI design team. The successful candidate will be highly organized, results-focused, and effective at software design, implementation and debugging.
What You Will Be Doing:
- Participate in discussions with internal/external customers to ensure application 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 software to NDI’s internal software development standards, and produce associated technical documentation to meet design control requirements
- Participate in software peer reviews
- Integrate the applications with our embedded systems used in medical devices and simulations
- 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’ll 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 experience in software design and coding for Linux operating system
- Mastery in C/C++ and Python
- Experience with setting up and configuring build environments for continuous integration development
- Experience in developing TCPIP-based applications
- Experience with version control using git
- Good team, personal organization, communication, and leadership skills
- Excellent problem solving and trouble-shooting skills
Desired Characteristics/Additional Assets:
- Experience developing cross-platform applications
- Experience with CMake / Make / SCons
- Experience with Atlassian Bamboo and Bitbucket
- Experience with Application Lifecycle Management systems is considered a plus