Get a reply from this employer — a resume and cover letter tailored to exactly what they’re hiring for.
Intuitive is seeking an embedded software engineer to join the New Product Development Platform Software team. You will develop C/C++ applications and middleware on embedded Linux, enabling configurations, diagnostics, and data management across CPUs, GPUs, FPGAs, and specialized hardware.
You will collaborate with software, systems, hardware, and test teams to build reusable platform services, APIs, and robust, scalable software for a heterogeneous robotic platform.
Primary Function of Position
The Ion™ endoluminal system is Intuitive's robotic platform designed for minimally invasive biopsy in the peripheral lung, with the goal of improving early lung cancer diagnosis.
This position is part of the New Product Development Platform Software team and will focus on developing embedded application software, middleware, and system services that enable applications and subsystems across the robotic platform.
The engineer will work with software, systems, hardware, and test teams to design, implement, integrate, and debug reliable software for a heterogeneous embedded computing platform incorporating CPUs, GPUs, FPGAs, and other specialized hardware. The successful candidate should have strong C/C++ application development skills, an understanding of software architecture and data management, and an interest in building reusable platform services and APIs.
Essential Job Duties
Middleware & Application Software Development
Design, implement, test, and maintain C/C++ applications and middleware running on embedded Linux platforms.
Develop reusable system services, libraries, and APIs used by multiple applications and subsystems.
Develop software for configuration, preferences, persistent system data, diagnostics, and system management.
Design and implement software for structured data storage and retrieval.
Develop multi-threaded applications and software using inter-process communication mechanisms.
Integrate application and middleware software across heterogeneous computing elements, including CPUs, GPUs, FPGAs, and other specialized processors.
Develop and maintain software interfaces between applications, platform services, and hardware-accelerated components.
Extend existing software frameworks to support new product features and system capabilities.
Participate in API, interface, and software design reviews.
Software Integration & Debugging
Debug issues across application, middleware, operating system, and hardware interfaces.
Investigate software defects and perform root-cause analysis.
Diagnose issues involving interactions between CPU-hosted software and GPU-, FPGA-, or hardware-accelerated components.
Use Linux debugging and diagnostic tools such as gdb, logs, tracing tools, and command-line utilities.
Work with other software functions, EE, and FPGA engineers to understand interfaces and troubleshoot integration issues.
Support software integration, verification, validation, and product bring-up activities.
Software Quality & Reliability
Develop maintainable, modular, and testable software.
Write unit and integration tests for new software components.
Design software with robustness, fault handling, data integrity, and serviceability in mind.
Participate in code reviews and contribute to team coding and design practices.
Support CI/CD and automated software testing.
undefined