Company Description
At Intuitive, we are united behind our mission: we believe that minimally invasive care is life-enhancing care. Through ingenuity and intelligent technology, we expand the potential of physicians to heal without constraints.
As a pioneer and market leader in robotic-assisted surgery, we strive to foster an inclusive and diverse team, committed to making a difference. For more than 25 years, we have worked with hospitals and care teams around the world to help solve some of healthcare's hardest challenges and advance what is possible.
Intuitive has been built by the efforts of great people from diverse backgrounds. We believe great ideas can come from anywhere. We strive to foster an inclusive culture built around diversity of thought and mutual respect. We lead with inclusion and empower our team members to do their best work as their most authentic selves.
Passionate people who want to make a difference drive our culture. Our team members are grounded in integrity, have a strong capacity to learn, the energy to get things done, and bring diverse, real world experiences to help us think in new ways. We actively invest in our team members to support their long-term growth so they can continue to advance our mission and achieve their highest potential.
Join a team committed to taking big leaps forward for a global community of healthcare professionals and their patients. Together, let's advance the world of minimally invasive care.
Job Description
Primary Function of Position
We are seeking a talented Senior Embedded Software Engineer, who will play a key technical leadership role in the development of Linux software infrastructure for the da Vinci Surgical System. Our team is responsible for designing and delivering platform technologies and engineering infrastructures for intra-operative intelligence products. These products aim to improve surgical outcomes and efficiency by innovating in imaging, machine learning, and visualization technologies. We work to empower the surgeon by extracting new information from the surgical scene, presenting it with meaningful visualization, and synthesizing it in a way that supports surgical decision making within the da Vinci Surgical System. Leveraging your extensive hands-on experience in embedded system development and architecture, you will contribute to bringing intra-operative intelligence products to the da Vinci production ecosystem while working with a variety of cross-functional teams. This is an opportunity to work on complex and challenging, yet interesting and rewarding problems at the intersection of embedded Linux software development, hardware and software system integration, hybrid compute architecture design (edge vs. cloud, CPU vs. GPU), and software ecosystem development empowering and facilitating feature application development, all within the da Vinci production ecosystem with performance, reliability, and safety.
The successful candidate is a self-directed developer and must excel in a high-energy, focused, and cross-functional environment to deliver high quality products and solutions. The candidate should also demonstrate the end-to-end ownership of their areas of responsibility and of the overall product. A strong sense of shared responsibility and shared reward is required.
Essential Job Duties (Specific responsibilities and tasks an individual would be expected to perform in the role. Additional job duties may be determined by functional people manager)
- Develop rock solid embedded software components and multi-threaded applications in C++
- Contribute to software development across all system layers, including Linux kernel, OS system components, user applications, and infrastructure software
- Contribute to cross-compilation of system software libraries and applications
- Implement early prototypes to evaluate new product concepts and integrate proof-of-concept modules into robot systems with production-ready, highest quality code.
- Evaluate design trade-offs and make design and architectural decisions when integrating various components of distinct nature (e.g., CPU vs. GPU intensive) within embedded software.
- Analyze and optimize run-time system performance with metrics at various system layers, from Linux kernel to operating system, and all the way up to user applications
- Work with a variety of cross functional teams (e.g., ME, EE, Cybersecurity, RA, QA) across all phases of the product development lifecycle including prototype, design, implementation, debug, V&V, release, field support, and sustaining
- Create high quality technical documents capturing key design concepts and principles behind software design and architectures
Required Skills and Experience
- Strong intuition and understanding of systems design methodologies for performance, testability, scalability, and maintainability
- Strong proficiency in modern C++ skills and advanced Linux system software development experience
- Hands-on software development in Python and shell scripts
- In-depth knowledge of Linux internals (schedulers, memory management, concurrency, IPC, memory allocation, file system, networking, logging, storage, etc.)
- Hands-on experience with designing hardware/software interfaces used in complex devices
- Extensive hands-on experience implementing SW/HW interfaces used in complex devices including interfaces with external devices from Linux as well as network communication interfaces.
- Proven track record for successfully delivering products to embedded environments
- Strong problem solving and analytical skills, ability to independently analyze complex system problems and isolate and troubleshoot software and hardware problems
- Proficiency in written and verbal communication
- Self-motivated, flexible team player to support all aspects of software development life cycle with the ability to define goals and work independently in a fast-paced environment
Qualifications
Required Education and Training
- Minimum Bachelor’s degree in Computer Science or Engineering, with minimum of 7 years of industry experience. Master’s or PhD degrees with minimum of 5 years of industry experienced is preferred.
Preferred Skills and Experience
- Experience with test automation and development of CI/CD pipelines (e.g., Jenkins, Buildbot)
- Experience with modern software build systems (e.g., CMake, Bazel).
- Experience with cloud computing and storage infrastructures (e.g., AWS)
- Understanding about GPU and machine learning technologies
- Understanding about cybersecurity best practices, security hardening strategies and implementation
Additional Information
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 Opportunity 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.
Mandatory Notices
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.