Senior/Staff Robotics Software Engineer
Posted Updated
Description
- In your role as a Robotics Software Engineer at Horizon Surgical Systems, you will contribute to the architecture and design of a cutting-edge surgical robotics system, implementing and verifying mission-critical software modules
- The ability to enforce deterministic timing, and fail-safe behaviors, in the controls software is paramount to its clinical efficacy and regulatory approval. You will be responsible for optimizing the end-to-end latency and throughput of control software by designing a high-performance controls platform
- Software Implementation:
- Designing, implementing, and maintaining robot controls software that provides real-time-safe data transfer and observability mechanisms
- Optimizing the controls data pipeline across PCs with network and DDS QoS configuration
- Bridging the timing gap between non-deterministic IPC mechanisms and deterministic event-loops
- Collaborating with control algorithm engineers on optimizing the performance of their control loops
- Integration & Collaboration:
- Collaborate with cross-functional teams to ensure high performance of software modules
- Engage in pair programming, code reviews, and design discussions to maintain high coding standards
- Testing & Reliability:
- Test your software with and without hardware, implementing the appropriate virtual fixtures where it saves time and aids in automation
- Strive for the simplest possible, most easily testable software design, to make unit- and integration-test coverage seamless
- This is an exciting opportunity to join a high-tech startup that is poised to revolutionize surgical robotics in ophthalmology
- Bachelor’s, Master’s or Ph.D. degree in Computer Science, Computer Engineering, Robotics, Electrical Engineering, or a related field
- Experience with kinematics and rigid-body dynamics is helpful for collaborating on control algorithms which use the servo drives that you integrate
- 5+(Senior)/8+(Staff) years of C++ robot controls software development
- 5+(Senior)/8+(Staff) years deploying and testing software in a Linux environment
- Prior experience working on mission-critical software
- Experience with an observability framework is helpful, particularly one tailored to robotics telemetry data
- Ability to independently implement high-performance Linux systems software
- Quantitative profiling and performance optimization experience (either using a tool like gprof or instrumenting software with your own tooling)
- Prior experience with embedded C/C++ is useful
- Knowledge of DDS, or an alternative asynchronous structured IPC mechanism (e.g., gRPC)
- Ability to analyze latency and jitter of high-frequency data in a distributed system
- Experience with motor control for serial robotic manipulators is preferred
- Experience with software deployment procedures (configuration management, containerized builds, etc.) is preferred
- Prior experience with medical device development is a plus
- Strong proficiency in modern C++ (at least C++11) is a must
- Proficiency with implementing and evaluating software architecture in the context of latency-minimization, determinism, and reliability
- Good communication skills to collaborate with interdisciplinary teams, including software engineers, electrical/mechanical engineers, and product managers
- Strong analytical, problem-solving, and organizational abilities
- Ability to work on-site for hands-on software integration
- Comfortable working in a lab or workshop environment alongside surgical robotic systems
- Ability to thrive in a fast-paced, dynamic work environment and adapt to new challenges
