Software QA Engineer, Embedded Linux
Firestorm · San Diego, CA · Yesterday
On-siteEngineering$100k–$130k/yrFull-time
About the role
Firestorm’s Embedded Linux team builds the software platform that manages our vehicles. The embedded Linux team handles cameras and drivers, configuration and control of radios, and other operating system level services; middleware and Linux services; low-level drivers and HALs; and the critical interfaces that connect autonomy, payloads, and comms.
Responsibilities
- Own system test for embedded Linux, providing fast, actionable feedback on functional defects, timing issues, and regressions that impact flight safety and operator trust.
- Validate engineering work: during sprints engineering individual tasks will be verified to the acceptance criteria defined by the task and verified in the build.
- Plan and execute risk-based strategies: feature/bring-up test plans, exploratory charters, protocol-level regression suites, acceptance criteria, and release sign-off gates ahead of Flight Test.
- Contribute to automation for HIL/SIL: SIL: host-based unit/integration tests for drivers and middleware (e.g., gtest/pytest), simulation of sensors/buses, fault-injection hooks. HIL: Python-driven benches to exercise serial/CAN/Ethernet I/O, sensor emulators, and power-cycle/bootloader/OTA flows; automate log capture and golden-trace diffs.
- Stand up reproducible rigs: power supplies/electronic loads, CAN analyzers, logic analyzers, GNSS/sensor simulators, programmable RF links; script scenario playback and telemetry injection.
- Instrument and diagnose: collect structured logs/metrics; create packet and log scrapers; use Wireshark, logic-analyzer traces, and serial/TCP/UDP sniffers to isolate timing and state issues quickly.
- Own defect triage: minimize and reproduce; steps, suspected root cause; track to closure with responsible engineers.
- Contribute to safety, security, and reliability hardening aligned to MIL-STD/DO guidance (negative testing, permission audits, fail-safe defaults, persistent-state hygiene).
- Produce clear and concise test docs (plans, procedures, bench/bring-up checklists) and mentor engineers on embedded QA techniques and automation patterns.
Requirements
- Bachelor’s degree in Robotics, Computer Science, Engineering, or related field
- 5+ years professional QA/SDET experience, including automation for embedded/real-time or safety-critical systems.
- Hands-on testing for embedded Linux and driver/HAL layers across UART/SPI/I²C/CAN-FD/Ethernet.
- Practical experience building automated tests with Python (pytest/Robot or equivalent) controlling benches over serial/CAN/Ethernet; comfort with C/C++ artifacts and host-based unit tests (gtest).
- Comfortable validating networked real-time systems (MAVLink, DDS, WebSockets), async I/O, and telemetry flows under constrained or lossy links.
- Proficient with Linux and Windows test environments, CLI tooling, scripting (Python/Bash/PowerShell), and Git.
- Experience integrating test suites into CI/CD (GitLab CI/Jenkins/GitHub Actions) and working with firmware packaging/bootloaders/OTA.
- Strong exploratory testing, defect isolation, and written communication—able to translate flight and bring-up workflows into crisp, testable scenarios.
Qualifications
- U.S. Citizenship and ability to obtain and maintain a U.S. Government security clearance.
Preferred Qualifications
- Deep experience with HIL/SIL design (sensor and bus emulation, fault injection, golden-trace comparison) and data-driven test design.
- Experience with PX4/ArduPilot middleware, uORB/parameters, and flight-control logging; familiarity with QGroundControl mission/telemetry workflows.
- Protocol/domain knowledge: MAVLink, STANAG 4586, Cursor-on-Target, DDS/RTPS, CAN diagnostics.
- Comfort with radios, GNSS, IMUs, payload interfaces, and lab bring-up; basic electronics (oscilloscope/logic-analyzer/JTAG) a plus.
- Performance/reliability testing: stress/soak/latency, boot-time and watchdog behavior, power-interrupt/EMI considerations; awareness of DO-178C/DO-160/MIL-STD-810/461 practices.
- Experience with Yocto/Buildroot, containerized benches (Docker/Podman), and artifact reproducibility.
- Test management/reporting (e.g., TestRail/Jira) and metrics for release readiness.