We are still hiring

We hope that through this challenging time, you and your family are staying safe and healthy. Though the COVID-19 pandemic is presenting unprecedented challenges, we continue to hire for our open positions. Our recruiting and hiring teams are taking prudent measures to minimize the spread of COVID-19 and still provide you with a great candidate experience. However, due to adjustments in work, life, and an increase in applications, we may start to experience some delays. Thank you for your patience and understanding.

To learn more about Intuitive’s response to COVID-19, see our company statement.

Senior Software Engineer, Simulation Engine SDK

Job Description

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

Description

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:
 

We are currently seeking a Sr. Software Engineer to join our multi-disciplinary team and develop core technologies for high-fidelity robotic surgical simulation that will enable surgeons around the world to improve their da Vinci surgical skills in a risk-free VR environment.

 

The simulation software platform will allow content developers in our team to easily create various training scenarios and exercises that must run in the stereoscopic visualization system in real time while performing computationally intensive soft body simulation. We are pushing the boundaries of robotic surgical simulation capabilities by continuously delivering on cutting-edge research and developing advanced technologies.

 

The successful candidate will effectively apply their passion, discipline, knowledge, and hands-on skills of software development, software distribution, C/C++/C# programming, graphics programming, and performance optimization in ongoing R&D projects.

 
 
Roles and Responsibilities:
 
  • Design, develop, and document simulation software to allow content developers to interactively design, prototype, test, validate, and productize robotic surgical simulation exercises
  • Refine and define software libraries for use by other software development teams in the production of physics based simulation
    • Interpret and implement mathematical physics algorithms for real-time performance optimization
    • Assess and identify opportunities for parallelization, implement against prioritized opportunities, optimize implementation balancing use of CPU and GPU, and iterate for continuous improvement
    • Articulate performance compromise decision points for team consideration
  • Improve and update the existing software platform
    • Create software plugins and APIs that are used with Unity
    • Refactor existing Unity plug-ins and Unity scripts for reusability, extensibility, and maintainability
    • Design/perform (automated) unit testing
    • Package modules to create various simulation scenarios
  • Own the performance quality and stability of simulation API’s and and package modules
    • Integrate, track, debug, and stabilize simulation modules, and ensure their reusability, sustainability and scalability
    • Collaborate with engineers and content developers to identify software requirements and specifications
  • Develop custom visual effects via shader programming for deployment into Unity game engine as specified by content artists and in collaboration with computer graphics researchers
  • Provide technical support to content developers and troubleshoot issues

Qualifications

Minimum Requirements:
 
  • Bachelor’s or Master’s degree in computer science or related fields
  • 10+ years’ extensive professional experience in developing and shipping C++/C# applications in an ongoing production environment, SDK or API in the industry, preferably computer graphics related
  • Expertise in C++/C# including abstraction mechanism, concurrency, parallel STL
  • 3+ years in C++ high performance multi-threaded programming in Windows OS
  • Proven experience and fluency in parallelization of code (e.g. CUDA programming)
  • Experience in developing an interface of one programming language to other, preferably C# interface to C++, XML/json to C++, or C++ to CUDA
  • Experience in shading programming such as GLSL, DirectX, or Cg
  • Ability to discuss compromises and trade-offs of simulation quality and computational accuracy as it impacts real-time performance, implementation, and scale
  • An excellent team player; always ready to help, open-minded, and responsible
  • Highly analytical and detail-oriented in the big picture  
  • Actively seeks and constructively engages in feedback discussions
  • Demonstrated verbal and written communication skills
 
 
Bonus:
 
  • Experience in developing algorithms of procedural texture generation and dynamic texture manipulation of decal, normal, and displacement maps
  • Knowledge of surface/volume mesh processing; computational/differential geometry, parameterization, re-meshing, and multi-resolution meshes
  • Experience in software authentication, usage monitoring, protection, and encryption
  • Master’s degree in computer science or related fields

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.