Our Client, an AV Manufacturing company, is looking for an Embedded Software Engineer for their Foster City, CA location.
Responsibilities:
Architect, implement, and maintain production-quality C++ applications for embedded Linux, with a focus on low-latency, high-performance user- and kernel-space solutions
Design Python-based automation frameworks and tooling to streamline test execution, integration, and performance validation
Build and expand hardware/software sensor emulators, and maintain and extend existing test assets and validation frameworks
Integrate embedded software with FPGA-based and ECU hardware over interfaces such as Ethernet, I2C, SPI, and CAN
Test and troubleshoot hardware and software issues, executing end-to-end verification strategies to ensure product quality and reliability
Requirements:
Bachelor's or Master's in Computer Science, Electrical Engineering, or related field, with 4+ years of relevant industry experience
Strong C++ development skills focused on low-latency, high-performance code in user (and ideally kernel) space
Extensive Linux development experience, including networking and system-level programming
Proficiency with Python and test automation (e.g., Pytest), plus Git, build systems (e.g., Bazel), and unit testing frameworks (e.g., GTest)
Hands-on experience building hardware/software integration test frameworks using embedded interfaces (Ethernet, I2C, SPI, CAN)
Linux kernel development and device driver implementation, including embedded software for ARM cores using Xilinx SDK and MPSoC platforms
Experience with Yocto or Petalinux, and familiarity with FPGA development, System Verilog, and HDL verification
Experience with high-speed protocols (PCIe, MIPI CSI-2), Precision Time Protocol (PTP / IEEE 1588), and Automotive Ethernet
Ability to read and analyze electronic schematics, with knowledge of PCB design and manufacturing workflows