Intuitive Surgical Careers

Senior Embedded Software Engineer

US-CA-Sunnyvale, California

Job Description

Job: Engineering
Primary Location: United States-California-US-CA-Sunnyvale
Schedule: Full-time
Requisition ID: 181979


Company Description:

Who is Intuitive Surgical? The numbers tell an amazing story. Learn more about our company.

Joining Intuitive Surgical means joining a team dedicated to using technology to benefit patients by improving surgical efficacy and decreasing surgical invasiveness, with patient safety as our highest priority.

Primary Function of Position:

The position will be responsible for developing and maintaining networking, data logging, file transfer, and audio/video streaming capabilities on the da Vinci and other ISI embedded platforms. Data is collected by the da Vinci and sent over secure networks to central servers. This position is expected to have multidisciplinary skills and ability to understand and consider the entire pipeline going from the embedded code through networking and data streaming up to the cloud-based receiving server infrastructures and databases.

Roles and Responsibilities:

This position has responsibility and authority for: 

• Develop object-oriented C++ and Python code for embedded nodes on the da Vinci and other ISI products
• Design efficient and intelligent embedded-side cross-platform networking solutions for transferring various types of data to/from cloud-based ISI servers
• Collaborate with Data Services teams to architect new approaches to data logging, image and file transfer, and remote status monitoring

Skill/Job Requirements: 

Competency Requirements: (Competency is based on: education, training, skills and experience.) In order to adequately perform the responsibilities of this position the individual must have: 

• Minimum of a Bachelor’s degree in Engineering or equivalent industry experience
• A minimum 6 years of hands-on embedded C/C++ development
• Experience with embedded Linux and/or at least one RTOS (QNX, VxWorks, etc.)
• In-depth knowledge of embedded software and related concepts such as multitasking, inter-process communication, concurrency, and finite-state machines
• Experience with common embedded system issues, including race conditions, memory corruption, and performance optimization
• Familiarity with Python is highly desired
• Object Oriented development in C++ and familiarity with Design Patterns
• Familiarity with Test-Driven Development a plus
• Experience with TCP/IP and socket-based communication
• Experience with websockets and/or WAMP (Web Application Messaging Protocol) is highly desired
• Knowledge of serialization frameworks (protobuf, thrift or avro) a plus
• Should be able to multi-task and handle production issues and project tasks
• Good communication skills and ability to engage in open, active collaboration
• Ability to troubleshoot/solve problems independently

We are an AA/EEO/Veterans/Disabled employer.
We will consider for employment qualified applicants with arrest and conviction records in accordance with fair chance laws.