Jobs · Engineering · California

Senior Embedded Linux Software Engineer – Robotics Platform (DeviceOS)

Anduril Industries · Costa Mesa, CA · 1 mo ago
Engineering$191k–$253k/yrFull-time
We need to output HTML fragment with sections: headings

for sections like About the role, Responsibilities, Requirements, Qualifications, Skills, Benefits, Pay, Schedule. We must only include sections that have real specific content. The posting includes: About The Team, About The Job, What You’ll Do (Responsibilities), Required Qualifications, Preferred Qualifications, US Salary Range (Pay), Benefits. Also maybe "About The Team" could be considered "About the role"? The instruction: use

for section headings (e.g. About the role, Responsibilities, Requirements, Qualifications, Skills, Benefits, Pay, Schedule). We should map content accordingly. We must not repeat job title as heading. No Job ID etc. Remove boilerplate: cookie/navigation/legal/EEO/equal-opportunity/scam-warning, duplicated lines, application instructions. Also remove "Protecting Yourself from Recruitment Scams", "Data Privacy". Also remove "Explore Our Benefits" link maybe but keep benefits description. We need to preserve all substantive information. So we need to include: - About the Team (maybe as "About the role"? Actually "About The Team" is about team, not role. Could be "About the role"? The instruction says use headings like About the role, Responsibilities, Requirements, Qualifications, Skills, Benefits, Pay, Schedule. We could use "About the role" for the description of the team and job? But we have separate sections: About The Team and About The Job. Might combine into "About the role". However we must not invent headings that have no content. We have content for both team and job. Could create two sections: "About the Team" and "About the Job" but those are not in the allowed list? The instruction says use

for section headings (e.g. About the role, Responsibilities, Requirements, Qualifications, Skills, Benefits, Pay, Schedule). It gives examples but not exclusive list. Likely we can use those exact headings; we should not create other headings like "About the Team". Safer to map to allowed headings: "About the role" can encompass both team and job description. But we might lose some nuance. However instruction: "include a section ONLY when the posting has real, specific content for it — never emit a heading followed by filler/placeholder text". So we need to decide which headings have content. We have content for: - About the role (could be description of team and job). We'll put combined description under

About the role

. - Responsibilities: "What You’ll Do" list. - Requirements: Could be "Required Qualifications". That's a heading maybe "Requirements" or "Qualifications". The instruction lists both Requirements and Qualifications as possible headings. We have Required Qualifications and Preferred Qualifications. Could split:

Requirements

for Required Qualifications,

Preferred Qualifications

for Preferred Qualifications (but Preferred Qualifications not in list; but we could use "Qualifications" for both? Might be better to have "Requirements" and "Preferred Qualifications". The instruction says use

for section headings (e.g. About the role, Responsibilities, Requirements, Qualifications, Skills, Benefits, Pay, Schedule). So "Qualifications" is allowed. We could have

Qualifications

and include both required and preferred? Might be okay. But we need to preserve all info; we can separate required and preferred inside that section with

or

    . However we might also include "Skills" section if we have skills content. The posting mentions skills: strong programming skills in C, proficiency in Rust or C++, hands-on debugging, etc. Those are within qualifications. Could create a Skills section but might be redundant. Better to follow the examples: we can have Requirements, Qualifications, Skills, Benefits, Pay, Schedule. We have Pay (US Salary Range). Benefits. No explicit Schedule. So we omit Schedule. We need to decide structure:

    About the role

    -> combine About The Team and About The Job paragraphs.

    Responsibilities

    -> list from "What You’ll Do".

    Requirements

    -> Required Qualifications.

    Qualifications

    -> Preferred Qualifications (maybe also include skills? but we can put skills inside Requirements or Qualifications). Could also have

    Skills

    for the programming skills etc. But those are already in Required Qualifications. Might be okay to keep them there.

    Benefits

    -> benefits description.

    Pay

    -> US Salary Range. We must not include filler like "commensurate with experience". The salary range is specific. We must remove boilerplate: "Protecting Yourself from Recruitment Scams", "Data Privacy", "Explore Our Benefits" link maybe but we can keep benefits description without the link. Also remove "Highly competitive equity grants are included..." that's part of benefits; keep. We must preserve all substantive information: include details about Lattice OS, etc. Ensure we don't lose any. Let's extract content: About The Team paragraph: "Anduril develops advanced robotic systems that operate at the edge across land, sea, and air. Our team builds the critical systems powering everything from Group 1–3 autonomous aerial systems (such as Ghost, Anvil, Bolt, and Altius) to autonomous Sentry Towers that safeguard borders and critical infrastructure with real-time sensor fusion. Underpinning these diverse robotic fleets is our DeviceOS team, which engineers the unified, highly reliable operating system and hardware-enablement platform that powers all of Anduril's autonomous assets. We take systems from initial schematics and paper sketches to hardened, field-ready robotics deployed in the most challenging operational environments on Earth." About The Job paragraph: "Underneath our airframes and Sentry Towers are custom carrier boards, embedded ARM architectures, and NVIDIA Jetson modules integrated with an intense array of hardware: electro-optical/infrared cameras, radars, CAN-connected sensor nodes, GPS, flight controllers, radios, and high-power motor drivers. Between the silicon vendor’s raw Board Support Package (BSP) and our autonomous mission software sits a layer that must be owned deliberately: the boot chain, device trees, kernel drivers, and the guarantee that every piece of hardware deterministically enumerates and operates when our image boots. In this role, you will own the boundary where custom hardware meets software. You will customize vendor BSPs and evaluate upstream changes. You will debug boot end-to-end—from firmware (EDK2/U-Boot) through unified kernel images to an encrypted root filesystem running at the tactical edge. You are the engineer who can read a schematic to diagnose a bus fault, remediate a kernel CVE on deployed hardware, and write the platform drivers that keep our robots flying and monitoring. In this role, you will maintain and support a large deployed fleet by writing fixes for existing hardware and boot chains. This work is critical to our operations: a firmware regression is not just a failing test, it is a physical unit someone has to service in the field." What You’ll Do (Responsibilities) list: - Own the Boot Path: Own the boot sequence end-to-end on deployed compute: low-level firmware, U-Boot/UEFI, unified kernel images, initrd, encrypted storage unlock, and handoff to a running NixOS environment. Debug boot failures on hardware via remote support. - Customize & Sustain Vendor BSPs: Reconcile vendor BSPs (Tegra/Jetson Linux, NXP, etc.) with modern NixOS package sets. Produce kernel and device tree patches when hardware requires custom behavior, and forward-port these changes across OS baseline upgrades. - Guarantee Deterministic Hardware Availability: Ensure all peripherals—cameras, radars, motor controllers, CAN networks, and radios—are reliably enumerated, correctly named, and fully operational across boots and platform upgrades. - Sustain a Long-Lived Baseline: Keep the existing signed boot chain and disk encryption working as the firmware, kernels, and package sets change underneath them. Triage and remediate CVEs in vendor kernels and low-level system components on our systems already deployed in the field. - Automate & Validate: Build and maintain automated Hardware-in-the-Loop (HIL) test suites to catch regressions in power states, bus communication, and platform stability before code hits flight or field hardware. - Perform Deep Hardware/Software Root-Cause Analysis: Diagnose intermittent bus errors, thermal and power throttling issues, kernel panics, and boot hangs using serial consoles, logic analyzers, dmesg, and hardware schematics. - Be the Upstream: Triage upstream kernel and vendor BSP issues, produce the patch when no upstream fix is coming, and carry that patch set forward as the platform moves. Required Qualifications: - 4+ years of professional embedded Linux platform, sustainment of deployed embedded Linux platforms, or kernel-adjacent integration experience. - Deep understanding of the embedded Linux boot chain: firmware/bootloaders (U-Boot, EDK2), device trees, kernel command line, initrd/initramfs, and root filesystem assembly. - Strong programming skills in C (for kernel/driver development and BSP patching) along with proficiency in Rust or C++ for userspace platform integration and services. - Hands-on experience debugging hardware at the bench: using serial consoles, reading schematics and component datasheets, and tracing issues to the board level. - Experience maintaining software deployed on real-world hardware, where updates must be safe, resilient to bricking, and strictly validated against regressions. - U.S. Person status is required due to export control regulations (ITAR/EAR), with eligibility to obtain and maintain a U.S. security clearance. Preferred Qualifications: - Nix / NixOS Experience: Direct experience with declarative systems (Nix/NixOS) for embedded builds; or deep expertise in Yocto/Buildroot paired with an appetite to transition to modern, reproducible paradigms. - NVIDIA Jetson / Tegra Depth: Hands-on experience with JetPack, Jetson Linux BSP, Tegra boot architecture, or CUDA compute runtime integration. - Low-Level Platform Security: Practical implementation of hardware root-of-trust, secure boot, HAB/AHAB, or measured boot (TPM). - Automated HIL Testing: Experience architecting automated test benches using Python or Bash to validate embedded Linux builds against physical test targets. - Familiarity with functional programming paradigms (e.g., Nix, Haskell). - Upstream open-source contributions to the Linux kernel, U-Boot, or system-level open-source projects. US Salary Range: $191,000—$253,000 USD Benefits: The salary range for this role is an estimate based on a wide range of compensation factors, inclusive of base salary only. Actual salary offer may vary based on (but not limited to) work experience, education and/or training, critical skills, and/or business considerations. Highly competitive equity grants are included in the majority of full time offers; and are considered part of Anduril's total compensation package. Additionally, Anduril offers top-tier benefits for full-time employees, including: At Anduril, we invest in our people. Our comprehensive, competitive benefits package (available at little to no cost to employees) ensures you’re supported in health, recovery, and whatever comes next. For more information, Explore Our Benefits. We should keep benefits description but maybe trim the "For more information, Explore Our Benefits." as it's a link/instruction; could be considered boilerplate? It's not exactly legal but it's a call to action. Might be okay to keep but it's not substantive. Safer to remove that sentence. Keep the rest. Now produce HTML:

    About the role

    ...combined paragraphs...

    Responsibilities

    • ... each responsibility ...

    Requirements

Similar jobs