Senior Systems Software Engineer

Intuitive SurgicalSunnyvale, CA
44d

About The Position

We are seeking a skilled and passionate Systems Software Engineer with a strong background in real-time OS systems to join our R&D team. The ideal candidate will be responsible for designing, developing, and maintaining software that runs on our next-generation medical devices, with a specific focus on Real-Time Operating Systems (RTOS) and Linux-based platforms. This role requires a deep understanding of low-level software, hardware-software integration, and the ability to work within a highly regulated development environment.

Requirements

  • Bachelor's or Master's degree in Computer Science, Electrical Engineering, or a related field.
  • 5+ years of experience in embedded software development.
  • Strong proficiency in C/C++ programming for embedded systems.
  • Hands-on experience with Real-Time Operating Systems (RTOS) such as ThreadX, SafeRTOS, QNX, etc.
  • Experience with embedded Linux, including kernel configuration, driver development, and application development in the user space.
  • Solid understanding of hardware-software integration and the ability to read and understand schematics and datasheets.
  • Experience with communication protocols commonly used in embedded systems (e.g., SPI, I2C, UART, CAN, USB, Ethernet, TCP/IP).
  • Familiarity with medical device regulations and standards, particularly IEC 62304 (Medical device software - Software lifecycle processes).
  • Experience with debugging tools (e.g., JTAG/SWD debuggers, GDB), and hardware testing equipment.
  • Strong problem-solving and root cause analysis skills.
  • Excellent written and verbal communication skills.
  • Minimum BSc degree in Computer science or adjacent technical field with 8 years of experience, or master's degree with 6 years of experience, or PhD degree with 3 years of experience.

Nice To Haves

  • Experience with safety-critical or high-reliability systems development.
  • Knowledge of scripting languages like Python for automated testing and build processes.
  • Experience with Continuous Integration/Continuous Deployment (CI/CD) pipelines.
  • Familiarity with other relevant standards such as ISO 13485 (Quality Management System) and ISO 14971 (Risk Management).
  • Experience with multi-threaded, event-driven programming.
  • Knowledge of embedded security principles and practices.

Responsibilities

  • Embedded Software Development
  • Design, develop, and maintain embedded software in C/C++ for real-time and safety-critical applications on medical devices.
  • Work with and contribute to software running on Real-Time Operating Systems (RTOS) like [e.g., ThreadX, SafeRTOS, QNX] and embedded Linux distributions like [e.g., Yocto, Buildroot].
  • Develop and implement device drivers, board support packages (BSPs), and other low-level firmware to interface with custom hardware.
  • Optimize software for performance, memory usage, and power consumption on resource-constrained embedded platforms.
  • Systems Integration
  • Collaborate closely with hardware engineers to define software requirements, troubleshoot hardware-software integration issues, and ensure seamless system functionality.
  • Debug and validate software using a range of tools, including in-circuit debuggers, oscilloscopes, logic analyzers, and protocol analyzers.
  • Participate in the bring-up and testing of new hardware prototypes and custom boards.
  • Architecture & Design
  • Contribute to the software architecture and technical design of new products and features, ensuring designs are robust, scalable, and maintainable.
  • Apply knowledge of software design methodologies and design patterns to produce high-quality, reusable code.
  • Verification & Compliance
  • Develop and execute unit tests, integration tests, and system-level tests to ensure software reliability and compliance with design specifications.
  • Adhere to software development lifecycle processes and documentation standards required for medical device regulation (e.g., IEC 62304).
  • Participate in risk analysis and contribute to the software risk management file (per ISO 14971) to identify and mitigate software-related hazards.
  • Documentation & Collaboration
  • Generate and maintain clear, well-structured technical documentation, including software requirements specifications, design documents, and test reports.
  • Work effectively in a cross-functional team environment, collaborating with systems engineers, quality assurance, and clinical specialists.
  • Utilize version control systems (e.g., Git) and bug tracking tools (e.g., Jira) as part of an agile or waterfall development process.
© 2024 Teal Labs, Inc
Privacy PolicyTerms of Service