Primary Function of Position
Our team is responsible for the real-time software infrastructure and supervisor state machines that support critical performance, safety and user-facing features of the da Vinci™ Surgical System, Intuitive’s flagship product. Our real-time software includes infrastructure for motion control algorithms, audio intercom and system sounds, data streaming and logging, and platform support for our next-generation da Vinci™ Simulator product line. Because our workstreams depend upon and enable the work of other teams, we occupy an exciting intersection of real-time architecture, feature development, and demonstration of product safety and reliability.
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. A demonstrated experience and comfort working with modern C++ in an embedded environment is required.
Essential Job Duties
- 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 and FPGA Design, Mechanical Engineering, System Analysis, System Test, User Interface Software Engineering, Manufacturing and Clinical Engineering.
- Participate in product risk analysis, defining requirements, implementing mitigations, and drafting and executing verification tests.
- Document software designs according to Intuitive's development guidelines.
- Engage in cross-functional resolution of critical problems.
- Identify and prove out new architectural enhancements to the software infrastructure and development processes that elevate the broader organization beyond your own team.
Additional 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.
- Extend audio software architecture to enable or improve user-facing audio features.
- 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 the state machine software responsible for validating robotic instruments and transitioning between robotic surgical procedures.
- Develop a thorough system-level knowledge from a clinical user perspective.
- Consider and apply appropriate inter-process communication software design principles.
- Contribute to embedded software in support of the da Vinci™ simulator product family.
- Contribute to multiple areas of software development, including but not limited to the following:
- configuration and monitoring of custom motion control hardware.
- real-time processing performance analysis.
- extension of current processing frameworks to new processors and hardware designs.
- design, development, and extension of offline hardware simulation environments to facilitate rapid software development and testing.
- bring-up of research prototypes used to evaluate new product concepts.
- design and development of hardware / software diagnostic tools.
Required Education and Experience
- Minimum Bachelor's degree, Master's or PhD degree preferred
- Minimum of 5 years (cumulative) industry and/or academic research/project-based experience in developing embedded systems.
- Experience in developing real-time embedded software for one or more of the following areas (or similar): motion-control, robotics, automotive, audio intercom/DSP.
- Experience in modern C++ and familiarity with design patterns.
- Experience in developing for embedded Linux and/or QNX at multiple levels, such as hardware bring-up, drivers, application.
- Experience in software support for custom hardware development including diagnostic tests, utilities, and power-on self-tests.
Preferred Skills and Experience
- Experience with scripting languages (e.g. Python, JavaScript, Matlab, etc.) for diagnostic/test automation.
- Comfort with concepts of design input, design output, traceability, and risk analysis.
- Demonstrated experience and comfort with all phases of the product development lifecycle (design, implementation, debug, verification, validation, and transfer to manufacturing).
- Experience with designing software products in an FDA or other regulated industry or for mission critical applications.
Due to the nature of our business and the role, please note that Intuitive and/or your customer(s) may require that you show current proof of vaccination against certain diseases including COVID-19. Details can vary by role.
Intuitive is an Equal Employment Opportunity / Affirmative Action Employer. We provide equal employment opportunities to all qualified applicants and employees, and prohibit discrimination and harassment of any type, without regard to race, sex, pregnancy, sexual orientation, gender identity, national origin, color, age, religion, protected veteran or disability status, genetic information or any other status protected under federal, state, or local applicable laws.
EEO and AA Policy
We will consider for employment qualified applicants with arrest and conviction records in accordance with fair chance laws.
Preference will be given to qualified candidates who do not reside, or plan to reside, in Alabama, Arkansas, Delaware, Florida, Indiana, Iowa, Louisiana, Maryland, Mississippi, Missouri, Oklahoma, Pennsylvania, South Carolina, or Tennessee.
We provide market-competitive compensation packages, inclusive of base pay, incentives, benefits, and equity. It would not be typical for someone to be hired at the top end of range for the role, as actual pay will be determined based on several factors, including experience, skills, and qualifications. The target salary ranges are listed.