Intuitive's Multiport Servo Software team is responsible for the real-time software and supervisory state machines that support critical performance, safety, and user-facing features of the da Vinci™ Surgical System, aiming to advance the world of minimally invasive care.
Requirements
- Experience in developing real-time embedded software for one or more of the following areas (or similar): motion-control, robotics, system state machines.
- Experience in C++, familiarity with design patterns and object-oriented software architectures.
- Experience in software support for hardware development including diagnostic tests, utilities, and self-tests.
- Experience in top-level state machine development for complex products with human user interface provisions and critical safety considerations.
- Experience using tools like IBM Rational Rhapsody.
- Experience with scripting languages (e.g. Python) for diagnostic/test automation.
- Experience in developing applications for Embedded Linux and/or QNX is ideal
Responsibilities
- Leverage control-systems software building blocks to provide servo functionality for multiple Intuitive Surgical robotic systems, maximizing flexibility and modularity while maintaining peak performance.
- Contribute to the design, extension, and testing of our supervisory state machine software that serve as the system’s top-level behavioral command control center.
- Develop and maintain real-time software and state machine software responsible for validating robotic instruments and transitioning between robotic surgical procedures.
- Design and develop product-focused, robust, efficient, and elegant C++ software in a heterogeneous, multi-processor SoC/FPGA/real-time-embedded environment.
- Analyze and quantify overall system performance and safety, including verification of adherence to specifications as well as identification of improvement opportunities, such as reduced latency and increased reliability/determinism.
- Extend existing tools and create new tools to support such analysis efforts.
- Interface and collaborate effectively and respectfully with other teams, including Platform Software, Electrical Engineering, System Analysis, System Test, User Interface Software Engineering, Manufacturing and Clinical Engineering.
Other
- The successful candidate must excel in a high-energy, focused, small-team and cross-functional environment, be able to drive to solutions from rough requirements, and have a commitment to high product quality.
- They must demonstrate ownership of their areas of responsibility and of the overall product.
- A strong sense of shared responsibility and shared reward is required.
- Develop a thorough system-level knowledge from a clinical user perspective.
- Participate in product risk analysis, defining requirements, implementing mitigations, and drafting and executing verification tests.