Embedded Software Engineer

GRAMEl Segundo, CA
$165,000 - $205,000Onsite

About The Position

GRAM is a self-replication company creating machine labor for the physical economy. Our first research frontier is self-preservation: the base case of physical self-replication. We are building a new class of machines called insectoids that can survive, coordinate, and recover without humans. We believe scalable machine labor requires more than single-agent task generality or machines shaped in our image. About the role You will own embedded software from microcontrollers and real-time control support through the Linux robot runtime. You will bring up new electronics; build drivers, deterministic communications, timing, health monitoring, calibration, logging, and fault response; and expose stable interfaces to higher-level autonomy. Success means versioned embedded software produces known behavior on a known hardware configuration and remains observable, recoverable, and testable through degraded conditions.

Requirements

  • Bachelor’s degree in computer science, computer engineering, electrical engineering, or a related field, or equivalent practical experience.
  • Shipped C or C++ software on a custom electromechanical product using an RTOS, embedded Linux, or both, including direct responsibility for hardware bring-up or field failure resolution.
  • Implemented and debugged device drivers, interrupts, DMA, concurrency, memory ownership, and at least one physical interface such as CAN, EtherCAT, Ethernet, SPI, I2C, or UART.
  • Demonstrated real-time systems work with measured latency, jitter, bandwidth, CPU or memory use, and behavior under overload or component failure.
  • Closed a hardware-software defect using instrumentation and captured evidence, then added an automated test, monitor, or fault response that prevented recurrence.

Nice To Haves

  • Robotics, autonomous vehicles, aerospace, industrial controls, or other distributed real-time machines.
  • Bootloaders, secure boot, over-the-air updates, Yocto, kernel or device-tree development, time synchronization, or deterministic networking.
  • Hardware-in-the-loop infrastructure, safety-related embedded systems, fleet configuration, or production programming and calibration.

Responsibilities

  • Design and implement C and C++ firmware, device drivers, hardware abstraction, real-time services, communication protocols, and robot-runtime components.
  • Define timing, bandwidth, lifecycle, state-machine, calibration, diagnostic, and fault-response contracts across sensors, actuators, power electronics, compute, and autonomy.
  • Bring up new boards and embedded compute using debuggers, oscilloscopes, logic analyzers, bus analyzers, kernel traces, and structured telemetry.
  • Build boot, provisioning, parameter, configuration, software-update, rollback, and recovery paths with explicit failure behavior and version compatibility.
  • Develop simulation, software-in-the-loop, hardware-in-the-loop, fault-injection, and regression tests that run automatically and gate releases.
  • Measure and improve latency, jitter, resource use, startup time, communication reliability, logging completeness, and recovery under load.
  • Investigate integrated-machine failures across firmware, Linux, networking, electronics, controls, and autonomy, then carry corrections through reproducible tests and release evidence.
© 2026 Teal Labs, Inc
Privacy PolicyTerms of Service