Direct-hire search, Princeton, NJ
Open roles Electrical and electronics engineering

Embedded Os Engineer

Salt Lake City, UT, onsite, $120k to $180k

Field
Electrical and electronics engineering
Location
Salt Lake City, UT
Work model
Onsite
Level
Mid
Pay
$120k to $180k

What you would own

  • We need someone comfortable navigating low-level OS internals, Yocto's BitBake machinery, system unit files, and the realities of headless embedded hardware with no display and limited recovery options.
  • Yocto / BitBake Build System Own 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 (git diff, based) against the pinned Qualcomm QRB5165 BSP (LU.UM.3.3.1) so that upstream sources are never modified directly.
  • Debug BitBake task failures, understanding the do_fetch to do_compile to do_rootfs to do_image pipeline, sstate-cache behavior, and when to use -c cleansstate vs. -c rootfs -f.
  • Manage package inclusion, exclusion (IMAGE_INSTALL:remove, PACKAGE_EXCLUDE, BAD_RECOMMENDATIONS), and inter-recipe dependency graphs.
  • Rootfs Post-Processing & OS Hardening Implement ROOTFS_POSTPROCESS_COMMAND functions to perform postbuild OS 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 identified in 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 /dev availability).
  • Diagnose and resolve Jenkins agent performance issues: Java heap tuning, Docker overlay2 disk pressure, container lifecycle management, and build environment reproducibility.
  • Implement proper artifact copy patterns (stageDir isolation) to prevent race conditions 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 pinned upstream BSP branches Embedded Linux System Configuration.
  • Configure systemd-networkd for runtime network mode switching (DHCP and linklocal) on headless devices using udev rules, button-press event handlers, and LED 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 processexporter configurations for drone fleet health monitoring via Grafana dashboards.
  • Remediate Nessus / Blue List security findings affecting the embedded OS: SSH hardening (key-only auth, sshd_config tuning), open port reduction, and service inventory documentation.
  • Maintain /etc/shadow hygiene, locked account policies, and PAM configurations appropriate for production embedded devices.
  • Generate and maintain security compliance artifacts (port inventories, service lists, patch status reports) for internal security assessors.
  • Reliability & Performance Tuning.
  • Profile and diagnose slow boot sequences, runaway processes, and memory pressure on ARM64 embedded hardware.
  • Use screen, tmux, and remote shell tooling to manage long-running build and deployment sessions on headless servers and devices.
  • Implement OS-level monitoring: log capture services, boot-time diagnostics, and watchdog patterns for unattended field deployment.

Everything above is the hiring company’s own words, with the company name taken out. The name, the team, and the interview steps come with the first conversation.

Not seeing your role?

Send your resume once. We read it against every open search we run and reach out only with a specific role, title, location, and pay included.

Send your resume