Lead Embedded Software Engineer (Real-Time Systems / C++)
Job Description
We are seeking a Lead Embedded Software Engineer to support the development of next-generation robotic and optical tracking technologies used within an advanced surgical platform. This individual will be responsible for developing, maintaining, and improving complex embedded software systems responsible for real-time hardware control, camera integration, device tracking, and system performance.
This is a highly technical, hands-on software engineering role focused on embedded Linux development, real-time software architecture, hardware interfacing, and complex multi-threaded systems. The ideal candidate will have deep C++ expertise and experience developing software that interacts directly with hardware in environments where precision, timing, and reliability are critical.
Despite the title, this is not a people-management role. The "Lead" designation reflects technical ownership and problem-solving responsibility rather than direct supervisory responsibilities. The team is seeking someone who wants to tackle difficult technical challenges and help drive a complex product platform to the next level.
Medical device experience is not required. Candidates from robotics, aerospace, automotive, industrial automation, computer vision, imaging systems, or other hardware-centric software environments are strongly encouraged to apply.
Day-to-Day
-
Design, develop, and maintain embedded software for advanced tracking and robotic systems
-
Develop software primarily in C++ within embedded Linux environments
-
Support real-time software applications responsible for hardware communication, device tracking, and system control
-
Develop and maintain multi-threaded and multi-process software architectures
-
Interface directly with hardware components, sensors, cameras, and embedded systems
-
Troubleshoot complex software, hardware, and system-level issues
-
Analyze existing software systems and identify opportunities for performance improvements and optimization
-
Collaborate with systems, electrical, mechanical, manufacturing, and software engineering teams
-
Support software verification, validation, testing, and debugging activities
-
Contribute to software architecture, design documentation, and development planning
-
Support next-generation development efforts while maintaining existing product platforms
Requirements / Qualifications
Required
-
Bachelor's degree in Computer Science, Software Engineering, Electrical Engineering, or related technical discipline
-
8+ years of software development experience
-
Strong expertise in C++ software development
-
Experience developing software within embedded Linux environments
-
Experience with real-time software systems
-
Strong experience developing multi-threaded and multi-process applications
-
Experience interfacing software with hardware devices, sensors, cameras, or embedded electronics
-
Strong understanding of object-oriented programming and software architecture
-
Experience troubleshooting and debugging complex system-level issues
-
Strong communication and collaboration skills
Preferred
-
Experience with robotics, camera systems, computer vision, optical tracking, imaging systems, or autonomous systems
-
Experience working with ARM-based platforms
-
Experience with hardware communication protocols and low-level hardware interaction
-
Experience with Python scripting
-
Experience with control systems, PID control, or motion control systems
-
Experience with gRPC, REST APIs, or communication frameworks
-
Experience with CI/CD, Docker, CMake, Yocto, or embedded build environments
-
Experience with multi-processor systems
-
Experience working in regulated industries such as medical device, aerospace, automotive, or industrial automation
-
Familiarity with Agile development environments