Lead Embedded Software Engineer (Real-Time Linux / C++)
Job Description
Our client, an innovative developer of advanced medical technology, is seeking a Lead Embedded Software Engineer to support the development of next-generation embedded software powering a highly sophisticated surgical platform. This individual will play a key role in designing, developing, and optimizing real-time software responsible for hardware communication, system control, and overall device performance.
This is a highly technical, hands‑on engineering position focused on Real-Time Linux , C++ , and ARM‑based embedded systems . The ideal candidate has extensive experience building high‑performance embedded software that interfaces directly with hardware in environments where precision, reliability, and deterministic performance are critical.
Despite the title, this is not a people management role. The "Lead" designation reflects technical ownership, software architecture contributions, and the ability to solve complex engineering challenges while collaborating across multiple engineering disciplines.
Day-to-Day
- Design, develop, and maintain embedded software for a complex medical technology platform.
- Develop high‑performance software primarily in C++ within a Real-Time Linux environment.
- Design and maintain multi‑threaded software using pThreads , Tasks, Futures, and other concurrent programming techniques.
- Develop software that interfaces directly with embedded hardware, sensors, processors, and electronic components.
- Support ARM‑based embedded platforms while optimizing software for performance, stability, and reliability.
- Troubleshoot complex hardware/software integration issues and identify root causes.
- Contribute to software architecture, system design, code reviews, and technical documentation.
- Collaborate closely with Electrical, Mechanical, Systems, Manufacturing, and Software Engineering teams.
- Support software verification, validation, testing, and release activities in a regulated development environment.
- Drive continuous improvements to existing software while contributing to next‑generation platform development.
Requirements / Qualifications
Must Have
- Bachelor's degree in Computer Science or a related technical discipline (or equivalent professional experience).
- 10+ years of hands‑on software engineering experience.
- Strong experience developing multi‑threaded applications using POSIX threads (pThreads) and modern concurrency concepts.
- Deep experience with ARM‑based embedded platforms.
- Strong understanding of object‑oriented programming, software architecture, and design patterns.
- Experience interfacing software with embedded electronics and low‑level hardware components.
- Working knowledge of Python.
- Familiarity with CI/CD pipelines, Docker, and CMake.
- Excellent communication and technical documentation skills.
- Knowledge of GMP and Quality System requirements.
Nice to Have
- Experience with gRPC or REST APIs.
- Experience with control systems or PID control.
- Familiarity with Yocto.
- Experience with multi‑processor embedded systems.
- Ability to read electronic schematics.
- Experience with camera systems, computer vision, stereo vision, or object tracking.
- Experience working in regulated industries such as medical devices.
- Familiarity with software design controls, verification & validation, or FDA 510(k) development.