Software Engineer, Senior

Forj MedicalSaint Paul, MN

About The Position

As a Senior Software Engineer at Forj, you’ll do more than write code. In this role, you’ll lead software development on cross-discipline engineering teams, be trusted to translate our client’s vision into embedded software reality, shape system software architecture, make thoughtful tradeoffs across functionality, performance, cost and maintainability – all while ensuring safety and security. You will combine hands-on technical contributions with leadership and influence – including significant autonomy in design choices and the responsibility to guide your software team through the full software development lifecycle. Core responsibilities include: Apply a thorough understanding of FDA regulations & IEC 62304 to bear on the safety and cybersecurity of software system designs. Lead definition, analysis, and allocation of requirements – directly in conversation with clients and collaboration with cross-functional leads in electrical, mechanical, system, test, and quality engineering. Provide detailed estimates in support of project milestones and software deliverables. Apply a unique feature-focused method of breaking down software system functionality; you’ll iteratively lead your software team through architecture, design, implementation, testing and integration of software features in an agile workflow. Provide leadership to a team of software engineers through work planning, task delegation, and coordination of execution against project milestones and budget. Design, implement and test project source code. Own the technical quality of all software artifacts – ensuring architectural integrity, code quality and design robustness through technical reviews, mentoring and leading by example. Lead and support software initiatives - including process improvements and internal library contributions. You’ll have a chance to make a meaningful impact on the lives of patients – our recent products help clinicians treat cancer, sustain life and alleviate pain. To top it off, we think you’ll enjoy working with other smart, curious and talented engineers as you bring medical devices to life.

Requirements

  • BS, MS, or equivalent degree in Computer/Software Engineering, Computer Science or similar field.
  • 5-9+ years’ experience in embedded software development in Medical Device or other regulated industry, ideally in a lead role with a track record leading small software teams with an inspirational and effective leadership style.
  • The ability to communicate technical concepts clearly and build trust with clients and peers.
  • Significant experience with embedded Linux development on SoMs – particularly with Yocto Project/BSP and driver configuration.
  • C++, C#, and/or C object-oriented programming with expert-level understanding of multithreading and multi-process applications.
  • Demonstrated proficiency in solving high-complexity software problems – including a methodical, reasoned approach to reproducing and fixing bugs.
  • Graphical User Interface application development, including associated design patterns (e.g. MVC, MVVM, MVP) – ideally using the Qt Framework/QML.
  • Microcontroller programming (ideally using ThreadX or other RTOS) including device driver development and use of debuggers, emulators, communication analyzers, oscilloscopes, and logic analyzers.
  • Expertise in software architecture, design and test (at the unit, integration and system levels).

Nice To Haves

  • Familiarity with common Design Patterns is a bonus!

Responsibilities

  • Apply a thorough understanding of FDA regulations & IEC 62304 to bear on the safety and cybersecurity of software system designs.
  • Lead definition, analysis, and allocation of requirements – directly in conversation with clients and collaboration with cross-functional leads in electrical, mechanical, system, test, and quality engineering.
  • Provide detailed estimates in support of project milestones and software deliverables.
  • Apply a unique feature-focused method of breaking down software system functionality; you’ll iteratively lead your software team through architecture, design, implementation, testing and integration of software features in an agile workflow.
  • Provide leadership to a team of software engineers through work planning, task delegation, and coordination of execution against project milestones and budget.
  • Design, implement and test project source code.
  • Own the technical quality of all software artifacts – ensuring architectural integrity, code quality and design robustness through technical reviews, mentoring and leading by example.
  • Lead and support software initiatives - including process improvements and internal library contributions.
© 2026 Teal Labs, Inc
Privacy PolicyTerms of Service