We’re looking for a Senior Software Engineer to join a highly collaborative medical device engineering team in St. Paul, MN.
This is a hands‑on technical leadership role where you’ll help bring life‑changing medical technologies from concept to reality. You’ll work closely with software, electrical, mechanical, systems, test, and quality engineers while partnering directly with clients to develop safe, reliable, and innovative embedded software.
You’ll have significant ownership over software architecture and design while also helping lead a team of software engineers through the full development lifecycle.
What You’ll Do:
- Lead embedded software development for regulated medical device products.
- Define, analyze, and allocate software requirements in collaboration with clients and cross‑functional engineering teams.
- Develop software architecture and make decisions around functionality, performance, cost, safety, security, and maintainability.
- Lead software teams through architecture, design, coding, testing, and integration.
- Plan work, delegate tasks, and coordinate software execution against project milestones and budgets.
- Design, implement, debug, and test production‑quality source code.
- Ensure strong technical quality across software architecture, design, documentation, and code.
- Mentor software engineers and provide technical leadership through design and code reviews.
- Support software process improvements and internal software library initiatives.
- Apply knowledge of FDA regulations and IEC 62304 to software safety and cybersecurity.
- Work within an agile development environment and contribute to continuous improvement.
What We’re Looking For
- Bachelor’s or Master’s degree in Computer Science, Software Engineering, Computer Engineering, or a related field.
- 5–9+ years of embedded software development experience, ideally within medical devices or another regulated industry.
- Experience serving as a technical lead or leading small software engineering teams.
- Strong communication skills with the ability to explain complex technical concepts to clients and cross‑functional teams.
- Significant experience with embedded Linux, particularly Yocto Project, BSP, and driver configuration.
- Expert‑level experience with C, C++, and/or C#, including multithreading and multiprocessing.
- Strong understanding of software architecture, design, and testing at the unit, integration, and system levels.
- Experience developing GUI applications and familiarity with patterns such as MVC, MVVM, or MVP.
- Experience with Qt Framework/QML is highly desirable.
- Experience with microcontroller programming and RTOS environments such as ThreadX.