Skip to main content

EMBEDDED OS ENGINEER

Posted 45 days ago

tris recruitersSalt Lake City (UT)

SENIORITY

Lead

Apply (opens in a new tab)

About the role

Our client is looking for a hands-on Embedded OS Engineer to own the Ubuntu-based Linux firmware stack on our MK2 drone platform (Qualcomm QRB5165). You will be theperson who builds the OS, keeps it secure, makes it reliable, and ships it throughautomated CI/CD pipelines. This is not a role for someone who has only worked at the application layer. We needsomeone comfortable navigating low-level OS internals, Yocto's BitBake machinery, system unit files, and the realities of headless embedded hardware with no display andlimited recovery options. Yocto / BitBake Build SystemOwn and maintain the teal-mk2-build repository, including layer configuration, local.conf tuning, and image recipes that produce the qti-ubuntu-robotics-image. Write and maintain .bb recipes and .bbappend overlays; create .patch files (gitdiff–based) against the pinned Qualcomm QRB5165 BSP (LU.UM.3.3.1) so thatupstream sources are never modified directly. Debug BitBake task failures—understanding the do_fetch do_compile do_rootfs do_image pipeline, sstate-cache behavior, and when to use -ccleansstate vs. -c rootfs -f. Optimize build performance: reduce full-build times by understanding QEMUemulation overhead vs. native ARM64 compilation, tuningBB_NUMBER_THREADS and PARALLEL_MAKE, and leveraging shared sstatecacheacross Jenkins agents. Manage package inclusion, exclusion (IMAGE_INSTALL:remove, PACKAGE_EXCLUDE, BAD_RECOMMENDATIONS), and inter-recipedependency graphs. Rootfs Post-Processing & OS Hardening Implement ROOTFS_POSTPROCESS_COMMAND functions to perform postbuildOS customization: package upgrades, apt security patching (Ubuntu ESM), service installation, and file system fixups. Remove unnecessary services from production images—including HTTP servers(lighttpd), TFTP daemons, and other attack-surface-expanding services identifiedin Blue List / Nessus security assessments. Write bash scripts and systemd service units that execute reliably in a headless, rootfs post-install context (no interactive terminal, limited /proc and /devavailability).Manage the dpkg / apt ecosystem within the embedded rootfs: pinning packages, handling held packages, validating package state, and ensuring apt lock files areclean across incremental builds Jenkins CI/CD Pipelines Maintain and improve Jenkins pipelines that build Yocto firmware images, including handling concurrent build isolation, artifact staging, and race conditionsbetween parallel jobs. Diagnose and resolve Jenkins agent performance issues: Java heap tuning, Docker overlay2 disk pressure, container lifecycle management, and buildenvironment reproducibility. Implement proper artifact copy patterns (stageDir isolation) to prevent raceconditions when multiple builds run concurrently against shared directories. Manage GitLab repository structure and branch protection for the build repo; implement .patch-based change workflows that preserve the integrity of pinnedupstream BSP branches Embedded Linux System Configuration Configure systemd-networkd for runtime network mode switching (DHCP linklocal)on headless devices using udev rules, button-press event handlers, andLED feedback mechanisms. Write and maintain systemd service units and timers: understanding WantedBy, After, Requires, and ExecStart semantics for embedded boot sequences. Implement reliable USB logging and file transfer services (usb-gadget, udevadm)for field diagnostics on devices with no screen. Develop and maintain Prometheus node_exporter integrations and processexporterconfigurations for drone fleet health monitoring via Grafana dashboards. Security & Compliance Remediate Nessus / Blue List security findings affecting the embedded OS: SSHhardening (key-only auth, sshd_config tuning), open port reduction, and serviceinventory documentation. Maintain /etc/shadow hygiene, locked account policies, and PAM configurationsappropriate for production embedded devices. Generate and maintain security compliance artifacts (port inventories, servicelists, patch status reports) for internal security assessors. Reliability & Performance Tuning Profile and diagnose slow boot sequences, runaway processes, and memorypressure on ARM64 embedded hardware. Use screen, tmux, and remote shell tooling to manage long-running build anddeployment sessions on headless servers and devices. Implement OS-level monitoring: log capture services, boot-time diagnostics, andwatchdog patterns for unattended field deployment. Advise on cloud build infrastructure choices (AWS Graviton / Azure ARM64) toeliminate QEMU emulation overhead and achieve 3–5 build time reductions.

Before you apply

Applying takes about a minute. These four things decide how fast it moves after that.

Your profile is current

It's what we read first. Occupations, seniority and locations matter more than a long history.

Two examples you can talk through

Not a portfolio — just two pieces of work where you can explain the decisions and what you'd change.

A number in mind

What you're on now and what would make you move. We negotiate better when we know both.

Your notice period

Employers plan around it, and it's the question that stalls offers most often.

Once you apply, someone reads it and calls you before anything reaches the employer — usually within two working days.

More like this