Senior Staff Embedded Software Engineer
Posted Updated
Description
You will design, implement, test, and verify embedded and Linux controls software for surgical robots. You will integrate servo drives and peripherals, diagnose real-time and hardware issues, analyze failure modes, implement safety diagnostics, collaborate through reviews, and develop automated unit and integration testing.
Responsibilities
- Design, implement, and test embedded and Linux controls software for surgical robotic systems
- Perform hardware and software failure mode and effect analysis and implement risk-mitigation diagnostics
- Integrate EtherCAT servo drives and redundant control-diagnostic checks
- Debug peripheral hardware, Linux kernel latency, and real-time safety issues
- Bring up new hardware peripherals and assess motor-controller failure implications
- Implement and optimize software for microcontroller RTOS and PREEMPT_RT Linux environments
- Collaborate through pair programming, code reviews, and design discussions
- Test software with and without hardware using virtual fixtures when appropriate
- Develop testable designs that support unit and integration test coverage
Requirements
- Bachelor’s, Master’s, or Ph.D. degree in computer science, computer engineering, electrical engineering, or a related field
- Strong proficiency in modern C++
- Ability to write real-time C/C++ for bare-metal systems or FreeRTOS, SafeRTOS, or QNX
- Ability to implement and optimize servo-drive control loops
- At least 5 years developing C++ robotics software interfacing with hardware
- At least 5 years deploying and testing Linux software and RTOS or bare-metal firmware
- Experience with mission-critical software
- Knowledge of I2C, SPI, and CAN
- Ability to implement Linux user-space drivers and custom wire protocols
- Ability to analyze latency and jitter in distributed systems
- Ability to read electrical schematics
- Ability to work on-site for hands-on software integration
Benefits
- Company-paid benefits package
