Intuitive Surgical Careers
Senior Embedded Software Engineer
Primary Location: United States-California-Sunnyvale-US-CA-Sunnyvale
Requisition ID: 180859
Who is Intuitive Surgical? The numbers tell an amazing story. Learn more about our company.
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
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
- Minimum 8 years of experience with 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
- Must be a self-starter and capable of working effectively with little supervision and driving individual projects
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.