Primary Function of the Position
The Senior System Software Engineer will work with talented and dedicated people to improve and extend Intuitive’s surgical robotic product lines. The successful candidate will contribute broadly to the Product Engineering team and digital product development, with a focused contribution on embedded software for da Vinci™ Surgical System products. As a team member, you will be involved in delivering features to the surgical customer by integrating complex functionality into complete surgical robot solutions, improving and maintaining the data interfaces and pipelines, seeing these through to product release, and resolving issues after release if necessary. The successful candidate must excel in a high-energy, small, focused team environment, be able to drive solutions from rough requirements, and commit to high product quality. Quick learning and a desire to understand requirements and create solutions are essential to becoming a valuable integrator and system developer. A strong sense of shared responsibility and reward is required, as is the ability to make work fun and exciting. Supporting you will be a development and management team that knows and cares about what you are doing and wants you to succeed.
Essential Job Duties
- Ability and desire to read and understand a legacy codebase that includes low-level and multi-processing heterogeneous networked processors.
- Work closely with Manufacturing/Field/Database engineers to investigate, debug, and isolate system SW issues.
- Develop new features, investigate, and resolve design issues that impact the performance of systems in the field and design issues related to the manufacturing process.
- Create, document, implement, unit test, and help develop detailed software designs in an exciting and sophisticated robotic system.
- SW Design Engineers have responsibility for ensuring that medical device designs meet product quality requirements and for compliance to the design control processes in the Quality Management System.
- Working on a cross-functional team to design, develop, and verify embedded software in da Vinci™ Surgical System products.
- Contribute to multiple areas of software development for our distributed multi-processor systems, including but not limited to the following areas: Inter-processor communication subsystem development, embedded vs server component API designs, and data pipelines.
- System diagnostic and service application development.
- Control and integration of external application servers.
- Development of research prototypes used to evaluate new product concepts.
- Contribute to the definition and specification of future designs.
- Support root cause analysis and issue resolution for released products and products in production.
Required Skills and Experience
- Experience with real-time operating systems, multithreaded programming, and a deep understanding of concurrency.
- Working knowledge of POSIX standards
- Excellent debugging skills and strong ability to root cause and isolate system issues at the component level.
- Fluent in designing and developing code in C and C++
- Working knowledge working with different architectures, such as x86, PPC, and ARM.
- Strong knowledge of Python (2.X and 3.X)
- Practical knowledge of Object-Oriented Programming and Design Patterns (e.g. state machines)
- In-depth knowledge of TCP/IP and web sockets.
- Working knowledge with API-driven coding, API architectures, IDL, pub/sub-architectures
- Experience working and supporting Digital BU (data services, application services, database administration, IoT) organizations.
- Hands-on engineering experience with a proven ability to work well in a team environment.
- Ability to build and maintain relationships across supported organizations. Excellent communication and documentation skills.
- A genuine excitement to learn and get to the bottom of challenging technical problems.
- A desire to deliver a quality and innovative product that improves many people’s lives
Required Education and Training
- Minimum Bachelor/Master/Ph.D. degree in Computer Science, Electrical, or Computer Engineering with experience developing and supporting embedded systems.
- Minimum 8+ years of industry experience in developing and supporting embedded systems.
Preferred Skills and Experience
- Working knowledge of Embedded Linux
- Working knowledge of the QNX Software Development Platform
- Working knowledge of revision control systems such as SVN and Git
- Working knowledge of building systems such as GNU Make and CMake, EMake, and build automation tools.
- Knowledge/experience with gRPC, REST interfaces, WAMP, ZMQ, Python aysncio.
- Experience designing software products in an FDA or other regulated industry or for mission-critical applications; comfortable with concepts of design input, design output, traceability, risk analysis, and mitigations.
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.