Skip to content

Search jobs inside your AI agent.

Grok Bot

Connect

Horizon Surgical Systems

Senior/Staff Embedded Software Engineer

Posted Updated
Discussion

Description

  • In your role as an Embedded 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 supporting a robotic system with EtherCAT servo drives and redundant control-diagnostic checks, and so you will be debugging issues with peripheral hardware, Linux kernel latency, and real-time safety
  • Working closely with the hardware team, you will work to bring up new peripherals, and you will need to consider the fail-safe implications in the event of motor controller failure
  • Your development and testing will be performed primarily with Linux, and embedded targets where required to interface with hardware
  • Designing, implementing, and testing embedded and Linux controls software for multiple generations of surgical robotic systems
  • Performing device failure mode and effect analysis (FMEA) for the hardware / software boundary, and implementing appropriate diagnostics to mitigate risks
  • 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
  • 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
  • The ability to optimize code for a true RTOS on a microcontroller as well as for PREEMPT_RT Linux, and to design protocols between these environments, is especially valuable for this role
  • Bachelor’s, Master’s or Ph.D. degree in Computer Science, Computer Engineering, Electrical Engineering, or a related field
  • Ability to implement and optimize control loops that integrate servo drives
  • Ability to write real-time C / C++ on a bare-metal embedded system, or with FreeRTOS / SafeRTOS / QNX
  • Strong proficiency in modern C++ (at least C++11) is a must
  • Prior experience working on mission-critical software
  • 5+ years deploying and testing Linux software and RTOS or bare-metal firmware environment
  • Prior experience with medical device development is a plus
  • 5+ years of developing C++ robotics software that interfaces with hardware
  • Working knowledge of typical embedded protocols (I2C, SPI, CAN, etc.)
  • Ability to read electrical schematics in collaboration with PCB design engineers
  • Experience with some formal software or motion control safety standard (e.g., ISO 26262, IEC 61800-5-2), and/or software verification by an independent safety certifying body, is advantageous
  • Experience with motor control for serial robotic manipulators is preferred
  • Experience with CANOpen (DS-402) servo drive control, or EtherCAT, strongly preferred
  • Experience with kinematics and rigid-body dynamics is helpful for collaborating on control algorithms which use the servo drives that you integrate
  • Ability to analyze latency and jitter of high-frequency data in a distributed system
  • Ability to independently implement Linux user-space drivers and custom wire interface protocols for controls data. (Kernel development experience is not required, but you should be comfortable designing a servo drive control daemon from scratch.)
  • Ability to thrive in a fast-paced, dynamic work environment and adapt to new challenges
  • Strong analytical, problem-solving, and organizational abilities
  • Good communication skills to collaborate with interdisciplinary teams, including software engineers, electrical/mechanical engineers, and product managers
  • Comfortable working in a lab or workshop environment alongside surgical robotic systems
  • Ability to work on-site for hands-on software integration

Skills

What Staff Embedded jobs ask for — and how much of it you have →
Apply

See also

Embedded jobs by country — openings, pay and top skills →