Firmware Engineer, Robotics and Surgery Engineering
Job description
About the role
This role develops embedded software for robotic surgery systems and defines hardware and software choices for future platforms. The position refines legacy codebases, validates software to strict safety standards, and participates in peer reviews. The engineer owns the full lifecycle of firmware components, from initial architecture to deployment and iteration in clinical settings. You will implement low-level control algorithms that directly interact with surgical tools and ensure deterministic real-time behavior. Collaboration with hardware designers is central to aligning sensor inputs with actuator outputs for safe operation. You will drive the adoption of best practices in coding, testing, and documentation across the team. Success in this role requires translating high-level product requirements into robust firmware modules that meet rigorous safety and performance targets.
Key facts
What you'll do
Code directs robotic surgery applications to achieve precise and reliable procedures.
Refactoring and retiring legacy embedded software streamlines the codebase for long-term maintainability.
Peer code reviews expose issues early and spread knowledge across the team.
Specification of hardware and software choices occurs during the development of future hardware platforms.
Sharing findings and progress aligns the team on goals and risks within a collaborative environment.
Interpret electrical schematics and datasheets to inform firmware implementation decisions.
Build and bring up MCUs or FPGAs to establish foundational platforms for product development.
Integrate and validate drivers for actuators and sensors to support surgical workflows.
Implement high-speed data acquisition and processing pipelines to handle intraoperative sensing.
Configure and optimize embedded Linux platforms for deployment in medical devices.
Perform kernel driver development and debug complex interactions in embedded stacks.
Set up and maintain embedded toolchains and associated workflows for efficient development.
Utilize advanced communication protocols such as PCIe, MIPI CSI/DSI, USB, and 802.3 at a working level.
Employ common communication protocols such as SPI, UART, I2C, and similar standards proficiently.
Requirements
The posting states a pay range of $138000 to $300000.
A track record of success in science or engineering is evidenced by outstanding projects, innovations, or advanced problem-solving.
Software development experience, preferably with embedded systems exposure, is required.
At least 2 years of experience with embedded systems is required.
Common communication protocols such as SPI, UART, I2C, and similar standards are used proficiently.
Advanced protocols such as PCIe, MIPI CSI/DSI, USB, and 802.3 are understood at a working level.
At least one embedded language such as C, C++, or Rust is used proficiently.
Embedded toolchains and associated workflows are familiar.
Bringing up and building MCUs or FPGAs is part of the experience.
Embedded stacks for ARM cores are worked with.
Embedded Linux platforms are developed on.
Embedded Linux kernel configuration and device tree setup are handled.
Kernel driver development is handled.
Drivers for actuators and sensors are coded.
High-speed data acquisition and processing is handled.
Foundational understanding of MCU architectures and peripheral integration is required.
Solid knowledge of electrical engineering and digital signal processing is required.
Electrical schematics and datasheets are interpreted, with proficiency in using lab equipment.
This role requires a Bachelor's degree or equivalent experience. Employment eligibility and background checks may apply. Work may involve travel within the listed locations.
Practical notes
This role requires a Bachelor's degree or equivalent experience. Employment eligibility and background checks may apply. Work may involve travel within the listed locations. Typical interview steps
Hiring for engineering roles usually starts with a recruiter screen, followed by one or two technical rounds. Candidates often solve a coding problem, discuss past projects, and answer system design questions. Some loops include a take-home task. Final rounds typically cover team fit and give candidates a chance to ask questions. Interviewers look for how you break down an unfamiliar problem, not just whether you reach the answer. Practicing a few problems aloud and reviewing your own past projects are the best preparation.
Career growth
Engineering careers usually progress from individual contributor to senior, staff, and principal levels. Some engineers move into management and lead teams of five to twenty people. Others stay on the technical track. Growth follows demonstrated impact, not tenure alone. A typical engineering ladder has clear levels with defined expectations for scope, quality, and mentorship. Moving up usually requires owning outcomes end to end rather than completing assigned tickets.