Senior Embedded Software Engineer

GRAM

Palo Alto (CA)

On-site

USD 165,000 - 205,000

Full time

44 hours ago
Be an early applicant

Get more replies from employers

Send a job-specific resume in minutes.

Benefits offered by this job

Relocation bonus
On-site in Palo Alto

Job summary

GRAM is seeking an embedded software engineer to own software from microcontrollers through the Linux robot runtime. You will bring up new electronics, build drivers, deterministic communications, timing, health monitoring, calibration, logging, and fault response, exposing stable interfaces to autonomy.

Success means versioned embedded software that behaves on known hardware, remains observable under degraded conditions, and supports automated testing and releases.

Qualifications

  • Bachelor’s degree in CS/CE or equivalent practical experience.
  • Shipped C/C++ software on a custom electromechanical product using an RTOS, embedded Linux, or both.
  • Implemented and debugged device drivers, interrupts, DMA, concurrency, and interfaces such as CAN, EtherCAT, Ethernet, SPI, I2C, or UART.

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.

Skills

C/C++ programming
real-time systems
embedded software
hardware bring-up
fault diagnosis

Education

Bachelor’s degree in CS/CE or equivalent practical experience

Tools

RTOS
embedded Linux
CAN
EtherCAT
Ethernet
SPI
I2C
UART

Job description

GRAM is a self replication company creating populations of insectoids for the physical economy.

Our first research frontier is self-preservation: the base case of physical self-replication. Our machines will 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.

What you will do
  • 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.
  • 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.
Preferred experience
  • 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.

The annual base salary range for this Palo Alto position is $165,000–$205,000. Health coverage, benefits, and generous equity come with the role. This role is on‑site in Palo Alto. A relocation bonus is available. We hire to start as soon as possible. We review what you’ve shipped; if it’s the caliber we seek, interviews take about a week, start to finish. We treat your work and conversations with discretion.

Get your free, confidential resume review.
or drag and drop your file here.
Similar jobs

Similar jobs worth comparing

Staff Robotics Systems Engineer
Staff Robotics Systems Engineer

GRAM • Palo Alto (CA)

On-site
USD 180,000 - 220,000
Health coverage
Generous equity
Relocation bonus
Senior Software Engineer, Robot Data Infrastructure
Senior Software Engineer, Robot Data Infrastructure

GRAM • Palo Alto (CA)

On-site
USD 190,000 - 240,000
Health coverage
Equity
Relocation bonus
Senior Robotics Engineer, Data Collection
Senior Robotics Engineer, Data Collection

GRAM • Palo Alto (CA)

On-site
USD 170,000 - 220,000
Health coverage
Generous equity
Relocation bonus
Senior Electrical Engineer, Power Electronics
Senior Electrical Engineer, Power Electronics

GRAM • Palo Alto (CA)

On-site
USD 155,000 - 195,000
Health coverage
Equity
Relocation bonus
Senior Embedded Software Engineer - Real-Time Robotics
Senior Embedded Software Engineer - Real-Time Robotics

GRAM • Palo Alto (CA)

On-site
USD 165,000 - 205,000
Relocation bonus
On-site in Palo Alto
Staff Embedded Software Engineer, Robotics
Staff Embedded Software Engineer, Robotics

Cobot • Santa Clara (CA)

On-site
USD 205,000 - 235,000
Relocation stipend
Equity
Founding Research Scientist, Robot Learning
Founding Research Scientist, Robot Learning

GRAM • Palo Alto (CA)

On-site
USD 225,000 - 300,000
Relocation bonus
Staff Controls Engineer, Whole-Body Control
Staff Controls Engineer, Whole-Body Control

GRAM • Palo Alto (CA)

On-site
USD 190,000 - 230,000
Relocation bonus
Health coverage
Equity
Senior Embedded Hardware Engineer - Robotics, Palo Alto
Senior Embedded Hardware Engineer - Robotics, Palo Alto

GRAM • Palo Alto (CA)

On-site
USD 150,000 - 190,000
Health coverage
Equity
Relocation bonus
Senior Software Engineer, Embedded Systems
Senior Software Engineer, Embedded Systems

Elroy Air • Byron (CA)

On-site
USD 180,000 - 280,000