Principal Embedded C++ Software Engineer (SAFERTOS, Medical Devices, CANbus)
The Principal Embedded C++ Software Engineer (SAFERTOS, Medical Devices, CANbus) will have the opportunity to work on a diverse set of products, including complex medical devices, robotics, and industrial equipment. This position requires deep expertise in C++, a strong background developing software running on an embedded platform using SAFERTOS, and proven experience with the CANbus protocol.
Role Responsibilities:
Take a key role in a fast-paced cross-functional team
Collaborate directly with clients to understand requirements and make critical design decisions
Contribute to the full software development lifecycle, including requirements analysis, design, development, code review, unit testing, integration, and verification
Ensure all development activities adhere to regulatory requirements for embedded software for medical devices (e.g., IEC 62304) and industry best practice
Create and maintain detailed software documentation
Execute with minimal guidance and provide technical oversight and guidance for other team members
Mentor junior engineers and drive best practice in embedded software development
Key Skills:
Experience designing, developing and testing production-level embedded software in C++ for safety-critical medical devices running the SAFERTOS real-time operating system (RTOS)
10+ years' experience and expert proficiency in modern embedded C++ and low-level programming
In-depth knowledge and implementation experience with the CANbus protocol and related drivers
Experience with hardware-software integration, debugging on target hardware, and using debugging tools (e.g., JTAG/SWD debuggers, oscilloscopes, logic analyzers)
Strong experience with modern SDLC processes (unit testing, static analysis, CI/CD)
Strong familiarity with modern software development tools (Git, SVN, or other industry-standard source control)
Experience using Agile techniques, including task / issue management
Demonstrated commitment to high quality
Strong oral and written communication skills
Highly motivated, self-disciplined, independent and results oriented
Bachelor's Degree in Computer Science, Electrical Engineering, Computer Engineering, Physics or related discipline preferred, or equivalent years of experience
Desired Experience:
Experience with other RTOS (e.g., FreeRTOS, VxWorks)
Experience with other communication protocols (e.g., SPI, I2C, Ethernet, USB)
Experience with EtherCAT
Proficiency in other programming languages such as C#, Python, or JavaScript
Experience with Yocto
Experience developing and maintaining CI/CD pipelines