Gables Search Group logo

EMBEDDED OS ENGINEER

Gables Search Group

  • Salt Lake City, UT
  • Today
    Want to know if you’re a fit?
    Upload your resume and let our AI show you.

    Skills

    • ARM (Advanced RISC Machine)unmatched
    • Amazon Web Services (AWS)unmatched
    • BSPunmatched
    • Bash Scriptingunmatched
    • Bootingunmatched
    • Cloud Computingunmatched
    • Computer Firmwareunmatched
    • Continuous Deployment/Deliveryunmatched
    • Continuous Integrationunmatched
    • Debugging Skillsunmatched
    • Dockerunmatched
    • Ecosystemsunmatched
    • Embedded Hardwareunmatched
    • Embedded Operating Systemsunmatched
    • Embedded Systemsunmatched
    • File Systemsunmatched
    • Gitunmatched
    • HTTP (HyperText Transport Protocol)unmatched
    • Identify Issuesunmatched
    • Javaunmatched
    • Jenkinsunmatched
    • Lighttpdunmatched
    • Linux Operating Systemunmatched
    • Machine Toolunmatched
    • Maintain Complianceunmatched
    • Memory Hardwareunmatched
    • Microsoft Windows Azureunmatched
    • Nessusunmatched
    • Operating Systemsunmatched
    • Performance Tuning/Optimizationunmatched
    • Reporting Dashboardsunmatched
    • Roboticsunmatched
    • Security Analysisunmatched
    • Security Complianceunmatched
    • Security Patchesunmatched
    • Shipping/Receivingunmatched
    • Software Patchesunmatched
    • Status Reportsunmatched
    • Systems Maintenanceunmatched
    • TFTP (Trivial File Transfer Protocol)unmatched
    • USBunmatched
    • Ubuntuunmatched
    • Unix Shell Programmingunmatched
    • Unmanned Aircraft Systems (UAS)unmatched
    • Vehicle Fleetsunmatched

    Description

    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 the
    person who builds the OS, keeps it secure, makes it reliable, and ships it through
    automated CI/CD pipelines.

    This is not a role for someone who has only worked at the application layer. 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 → do_compile →
    do_rootfs → do_image pipeline, sstate-cache behavior, and when to use -c
    cleansstate vs. -c rootfs -f.
    • Optimize build performance: reduce full-build times by understanding QEMU
    emulation overhead vs. native ARM64 compilation, tuning
    BB_NUMBER_THREADS and PARALLEL_MAKE, and leveraging shared sstatecache
    across Jenkins agents.
    • 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).
    • Manage the dpkg / apt ecosystem within the embedded rootfs: pinning packages,
    handling held packages, validating package state, and ensuring apt lock files are
    clean 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 conditions
    between parallel jobs.
     
    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 ↔ 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.

    Security & Compliance
    • 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.
    • Advise on cloud build infrastructure choices (AWS Graviton / Azure ARM64) to
    eliminate QEMU emulation overhead and achieve 3–5× build time reductions.
     
     
     

    Numbers & Facts

    LocationSalt Lake City, UT
    IndustryStaffing/Employment Agencies
    Company Size50 to 99 employees
    Year Founded2002
    Websitehttps://www.gablessearch.com/

    About Company

    Gables Search Group headquartered in Cleveland, Ohio has been a leader in search and placement nationwide since 2002.  Our company specializes in both direct and contract (temporary) staffing in all industries and disciplines.

    At Gables Search Group, we connect exceptional professionals with outstanding organizations.  Our commitment to integrity, excellence, partnership, innovation, and respect sets us apart. With a personalized approach to recruitment, we ensure the perfect match between candidates and employers.

    Whether you are a talented professional seeking new opportunities or an organization looking to build a high-performing team, Gables Search Group is here to guide you through the journey. Our success is built on the success of our clients and candidates, and we are dedicated to making a positive impact on the careers and businesses we serve.

    Similar Jobs