Principal Engineer-Linux, Middleware & ROS 2 — Vehicle Compute Systems
- 🇺🇸 United States
- On-site
- Staff / Principal
- 12 hours ago
- $50 / hour
- Linux
- ROS 2
- C++
- RTOS
- SoCs
- I2C
- SPI
- UART
- Mac
- UDP
- TCP
- Unit Testing
- FreeRTOS
- QNX
- Cortex
- Python
Principal Engineer-Linux, Middleware & ROS 2 — Vehicle Compute Systems
Experience: 8+ years
Mountain View, CA ( onsite)
Duration: 18 months
About the Company
Our client builds embedded software and firmware for the semiconductor and automotive industries, with deep expertise in low-level device software, driver automation, and safety-critical systems. The engineering organization works close to the metal—bringing up silicon, developing production firmware, and validating systems to the standards required by modern and autonomous vehicles. The team is increasingly focused on compute, middleware, and networking layers that connect autonomy software to vehicle hardware platforms.
About the Role
We are looking for a Staff / Principal Firmware Engineer to architect and lead the firmware of a large, complex vehicle compute system—the layer that brings up the hardware and makes networking, cameras, memory, and low-level peripherals work reliably for the software above. Modern C++ is the preferred language for this role, used with the discipline that real-time, resource-constrained targets require.
You will need a deep understanding of the hardware/software interface across many domains: how a peripheral's registers, clocks, interrupts, and DMA behave; how a camera pipeline or Ethernet link comes up; and how firmware, RTOS, and hardware interact under real timing, power, and fault conditions. You will own the firmware architecture and roadmap, set engineering standards that keep the platform dependable, and work across the full product lifecycle—from silicon bring-up through validation, manufacturing, and deployment. This is a hands-on leadership position. You will still be in the code and on the bench for the hardest problems—with a scope, logic analyzer, or JTAG debugger—while mentoring senior engineers and driving architectural decisions across the platform.
What You'll Do
- Architect and lead the design of production firmware for the vehicle compute platform and its ECUs, on microcontrollers and SoCs running RTOS and similar operating systems.
- Own the hardware/software interface: device drivers and board support for low-level interfaces (I2C, SPI, UART, GPIO, CAN), memory and storage (DDR, QSPI/NOR flash, eMMC/UFS), and clocks, resets, power, interrupts, and DMA.
- Lead firmware for networking hardware—Ethernet MAC/PHY bring-up and configuration (MDIO, RGMII/SGMII, automotive Ethernet PHYs), switches, and the lower layers of the network stack (UDP/TCP).
- Lead firmware for camera and sensor paths—image sensor configuration, MIPI CSI-2 receivers, serializer/deserializer links, and the control and timing that feed downstream processing.
- Set the RTOS architecture—task design, timing, concurrency, memory and CPU budgets, and power states—and review designs and code for real-time correctness.
- Set C++ engineering standards for firmware—modern C++ on embedded targets (e.g. no dynamic allocation after init, controlled use of exceptions and RTTI, templates and constexpr for zero-cost abstraction), code reviews, and static analysis.
- Drive host-based unit testing of firmware with GoogleTest (gtest) and GoogleMock (gmock), using mocked hardware abstraction layers and drivers so that most logic is tested before it reaches the target.
- Define the SDK architecture and integration strategy—how silicon-vendor SDKs, HALs, and BSPs are wrapped, versioned, and integrated behind clean C++ driver interfaces, and how the platform firmware is packaged as an SDK for other teams.
- Define boot and platform-initialization flows—boot ROM handoff, bootloaders, secure boot, firmware update, and memory initialization.
- Define the architecture for on-target diagnostics and self-test, including power-on self-tests (POST), memory/logic BIST, CPU, communication, and memory load generation, supply-voltage monitoring with safe-county entry, and controlled power-up/sleep sequences that meet quiescent-current targets.
- Establish standards for communication-bus health and error monitoring across CAN and Ethernet, including link-integrity, cable-fault, and signal-integrity (CRC) detection, with logging and reporting.
- Lead silicon and board bring-up with hardware teams—reviewing schematics and datasheets, debugging at the signal level, and closing hardware/firmware issues quickly.
- Establish engineering standards for firmware testing—unit, integration, and Hardware-in-the-Loop (HIL)—and build test harnesses with test and platform engineers.
- Mentor senior engineers and raise the technical bar for firmware design, code quality, and system reliability across teams.
What You'll Bring
- 8+ years of hands-on embedded firmware development, including leading firmware architecture for complex, multi-processor systems.
- Expert-level modern C++ (C++14/17) as a primary language for resource-constrained, real-time firmware, with strong C skills for low-level and vendor code.
- Proficiency with unit test frameworks, especially GoogleTest (gtest) and GoogleMock (gmock)—writing testable firmware, mocking hardware and RTOS dependencies, and running host-based tests in CI.
- Experience with SDK architecture and integration—including integrating silicon-vendor SDKs and HALs and designing clean C++ driver and platform APIs on top of them.
- Deep understanding of the hardware/software interface—reading datasheets and reference manuals, register-level programming, interrupts, DMA, caches, and memory maps.
- Proven hands-on experience writing low-level device drivers for microcontroller and SoC peripherals and on-chip controllers—from register-level bring-up to production-quality drivers.
- Strong experience with RTOS and similar operating systems, such as FreeRTOS, Zephyr, ThreadX, or QNX.
- Experience across several hardware domains, including networking (Ethernet MAC/PHY), cameras and image sensors, low-level interfaces (I2C, SPI, UART, CAN), and memory and storage.
- Strong experience with 32-bit ARM microcontrollers and SoCs (Cortex-M / Cortex-R / Cortex-A).
- Hardware-debugging skills with standard bench equipment—oscilloscope, logic analyzer, JTAG/SWD debuggers, protocol analyzers—and solid electrical-engineering fundamentals.
- Working knowledge of Python for tooling, automation, and test.
- A test-driven approach to firmware quality and a track record of working closely with hardware and test engineers.
- Ability to understand complex systems end to end and reason across the boundary from firmware down to silicon and board-level behavior.
Nice to Have
- Automotive industry background—ECU firmware, automotive processors such as NXP S32G / S32K or similar, and automotive networks.
- Functional safety and process standards such as ISO 26262 and ASPICE; safety-oriented RTOS such as SafeRTOS.
- Automotive diagnostics, including UDS, diagnostic trouble codes (DTCs), and tester interaction.
- Time synchronization and Time-Sensitive Networking (PTP / IEEE 1588, gPTP).
- Camera link technologies such as GMSL or FPD-Link, and ISP bring-up.
- Secure boot, root-of-trust, and firmware security experience.
- Linux device-driver or bootloader development, such as U-Boot.
Why Join
You'll own the firmware foundation of autonomous-vehicle compute platforms—the layer every other piece of software depends on. It's a role for an engineer who wants both the ownership of a principal-level technical mandate and the satisfaction of solving hard, low-level problems on real hardware.
Metasys Technologies/NVISH is an equal opportunity employer. All applicants will be considered for employment without attention to race, color, religion, sex, sexual orientation, gender identify, national origin, veteran or disability status.
Principal Engineer-Linux, Middleware & ROS 2 — Vehicle Compute Systems · Metasys Technologies