Open Position - Senior Robotics C++ Engineer, Controls PlatformRole DescriptionIn your role as a Robotics C++ 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 teleoperative control by designing a high-performance controls platform.
Required Qualifications & Abilities:Educational Background:- Bachelor's, Master's or Ph.D. degree in Computer Science, Computer Engineering, Electrical Engineering, or a related field.
Technical Skills:- Strong proficiency in modern C++ (at least C++11) is a must.
- Knowledge of DDS, or an alternative asynchronous structured IPC mechanism (e.g., gRPC).
- Proficiency with evaluating software architecture in the context of latency-minimization and reliability.
Experience:- 5+ years of modern C++ software development.
- 5+ years deploying and testing software in a Linux environment.
- Prior experience working on mission-critical software.
- Prior experience with medical device development is a plus.
- Prior experience with robotics software is preferred.
- Prior experience with embedded C/C++ is useful.
Knowledge:- Ability to independently implement high-performance Linux systems software. (You should be comfortable designing a middleware framework for high-frequency robotics telemetry from scratch.)
- Quantitative profiling and performance optimization experience (either using a tool like gprof or instrumenting software with your own tooling).
- Experience with an observability framework is helpful, particularly one tailored to robotics telemetry data.
- Ability to analyze latency and jitter of high-frequency data in a distributed system.
- Experience with software deployment procedures (configuration management, containerized builds, etc.) is preferred.
- Experience with motor control for serial robotic manipulators is preferred.
- Experience with kinematics and rigid-body dynamics is helpful for collaborating on control algorithms which use the servo drives that you integrate.
Soft Skills:- Strong analytical, problem-solving, and organizational abilities.
- Good communication skills to collaborate with interdisciplinary teams, including software engineers, electrical/mechanical engineers, and product managers.
- Ability to thrive in a fast-paced, dynamic work environment and adapt to new challenges.
Other Requirements:- Comfortable working in a lab or workshop environment alongside surgical robotic systems.
- Ability to work on-site for hands-on software integration.
Responsibilities:- Software Implementation:
- Designing, implementing, and maintaining a controls software platform 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.