
Firmware HIL Engineer
Job description
About the role
You will architect and execute automated validation strategies that bridge firmware behavior with real-world hardware interactions in high-stakes environments. Your work will directly influence the reliability and performance of physical AI systems deployed across automotive, defense, and industrial platforms. You will own the design of hardware-in-the-loop test scenarios that exercise firmware under realistic electrical and protocol conditions. You will collaborate closely with firmware developers and systems engineers to translate low-level requirements into repeatable, deterministic test procedures. You will diagnose subtle integration issues that only emerge when firmware interacts with physical sensors, actuators, and communication buses. You will contribute to the long-term maintainability and scalability of test assets used by cross-functional teams on a daily basis. You will play a key role in reducing manual testing overhead through automation that increases coverage and confidence with every release.
Key facts
What you'll do
Design and implement firmware-focused HIL test benches that validate low-level firmware behavior against simulated hardware stimuli.
Build and maintain Python-based automation frameworks that orchestrate complex hardware setups and manage thousands of daily test jobs across hundreds of benches.
Integrate embedded firmware images with PC-side applications, ensuring reliable communication and state synchronization over buses such as CAN, LIN, and FlexRay.
Utilize logic analyzers, oscilloscopes, and other measurement tools to debug electrical signal issues and correlate them with firmware execution.
Develop on-target software components that run directly on embedded systems and interact with peripheral drivers and communication controllers.
Employ JTAG debuggers such as J-Link and Lauterbach tools to bring up new embedded targets and resolve low-level boot and initialization problems.
Create scalable infrastructure for medium to large test labs, managing fleets of DUTs, controllers, and network interfaces with high reliability.
Diagnose and remediate flaky integration tests in production CI, identifying root causes in timing, synchronization, or hardware simulation.
Collaborate with infrastructure and DevOps engineers to harden Linux-based test systems, including networking, udev rules, kernel modules, and systemd services.
Contribute to CI/CD pipeline design, improving build and test execution using tools such as Buildkite or Jenkins with self-hosted runners on physical machines.
Apply strong Nix or monorepo practices within large codebases to ensure reproducible builds and test environments for firmware validation.
Support the development and maintenance of driver libraries and CLI tools that enable automated control of test equipment from Python test cases.
Champion modern CI/HIL concepts by refining test scenarios, improving observability, and reducing manual intervention across the test fleet.
Partner with cross-functional teams to define test coverage goals, trace requirements into executable test cases, and report on quality metrics.
Requirements
You hold a BS in Computer Science, Computer Engineering, or a related field.
You bring 4+ years of experience as a software engineer, with at least 2 years focused on system architecture and implementation.
You have 4+ years of hands-on experience building software solutions that interact directly with physical hardware.
You are proficient with Python and Bash for writing tooling, CLI applications, and automated test workflows.
You have built and scaled test infrastructure capable of managing hardware test labs at medium to large scale, with O(100s) of test benches or DUTs running O(1000s) of jobs daily.
You can diagnose and fix flaky integration tests in production CI, using data-driven analysis to isolate timing, synchronization, or environmental causes.
You are comfortable using logic analyzers, oscilloscopes, and other measurement instruments to debug hardware and firmware interactions.
You have experience building on-target software for firmware and embedded systems, particularly when those systems communicate with PC-side applications.
You understand modern CI/HIL concepts and can apply them to validate firmware behavior in simulated and real hardware environments.
Nice to have
Experience with CAN/CAN-FD, LIN, and FlexRay bus tooling and SocketCAN.
Strong Nix/NixOS expertise, including flakes, modules, derivations, fixed-output fetches, and VM tests.
Familiarity with CI/CD pipeline design using Buildkite, Jenkins, or similar systems.
Hands-on background with Bazel or monorepo workflows in large codebases.
Practical notes
This role is based in Sunnyvale and follows an in-office model where employees are expected to work primarily from the Applied Intuition office five days a week. Flexibility is supported, including occasional remote work, adjusted start times for morning meetings, or early departures to accommodate personal commitments. The listed schedule reflects standard hours, and any role-specific travel expectations will be confirmed during the hiring process. Applied Intuition participates in E-Verify in locations where required. Only candidates authorized to work in the United States will be considered for employment.