Software Engineer
A technology company in the medical sector is developing an autonomous device for diagnostic blood collection. The device uses near-infrared imaging, ultrasound, and Doppler ultrasound to drive a robotics and AI stack that locates veins and completes the blood draw end-to-end. The system is distributed across subsystems that communicate via DDS, runs on Linux under real-time constraints, and is coordinated by state machine logic.
The first devices have been placed with customers, making architecture, testability, and debugging discipline more important than new features.
What you do
You will focus on the software layer that holds the hardware together, close to the motion control that determines the accuracy of needle insertion. Your tasks include:
- Designing and implementing components in modern C++ (C++17/20)
- Extending and restructuring state-machine-based logic
- Integrating evolving hardware into the stack
- Working with DDS and distributed system interfaces
- Building abstractions for other teams on top of protocols such as EtherCAT and CANopen
- Debugging problems that cross the software and hardware boundary
- Improving system verification with automated tests and Python scripting
- Contributing to system-level design decisions with hardware engineers, systems engineers, and other software developers in the team
Profile
- 4 to 7 years of professional C++ development experience
- Strong modern C++ (C++17/20) on production-level systems
- Linux experience, automated testing, and strong debugging in complex systems
- Experience with state machines and hardware-software integration
- DDS or a comparable pub/sub framework, and real-time or near real-time systems, are a plus
- Python scripting, and exposure to robotics or industrial protocols such as EtherCAT or CANopen, are welcome
- Master's degree in Computer Science, Electrical Engineering, or a related technical field
Practical
- Opportunity for hybrid work
How to apply
View the full assignment text and application details once your tailored application is ready.
Order a tailored application to view the full assignment and application details.
More context, less searching.
You get enough context to judge whether this job is relevant. The full brief, client details and next steps stay available inside the app.