Firmware Engineer
About Menlo
Menlo Research is an Applied R&D lab building Asimov, an open-source humanoid robot platform, and the full software stack that powers it. Our mission is to make humanoid labor economically viable, turning software into physical labor at scale. We build across the full stack: hardware architecture, locomotion, autonomy, simulation, and infrastructure. We move fast, ship to real robots, and open-source everything we can. If you want your work to matter beyond a paper or a demo, this is the place.
The Role
You own the software that sits closest to Asimov's hardware, the code that closes control loops on time, every time. You work from bare-metal joint controllers up through embedded Linux on the robot's compute platform, bringing up new boards, writing drivers for the sensors and actuators that make the robot move, and making sure the timing guarantees the controls and autonomy teams depend on actually hold on real hardware.
What You'll Do
-
Design, implement, and test real-time firmware in C/C++ for joint controllers, sensor boards, and power management across the robot
-
Own the embedded Linux platform on Asimov's onboard compute: kernel configuration, device drivers, device trees, and board support packages
-
Bring up new board revisions alongside the electrical team, from first power-on to a fully characterized, controllable subsystem
-
Build and maintain the communication layer between joints and the main compute stack, including bus scheduling, time synchronization, and the joint-level API exposed to controls
-
Own bootloader, flashing, and firmware update flows across every board on the robot, so a fleet-wide update is routine rather than an event
-
Integrate sensors, including IMUs, encoders, force-torque, and camera interfaces, with correct timestamping and deterministic latency
-
Implement safety and fault handling: watchdogs, E-stop paths, thermal and current limits, and graceful degradation when a subsystem drops out
-
Debug across the hardware-software boundary with oscilloscopes, logic analyzers, and bus sniffers, and build the test automation that catches regressions before they reach a robot
-
Contribute to Menlo 's open-source efforts, including firmware, drivers, and hardware bring-up documentation for the broader robotics community
What We Look For
-
3 or more years of hands-on firmware or embedded software experience on products that ship and run in the real world
-
Strong C and C++ in resource-constrained, real-time environments, plus Python for tooling, test automation, and calibration scripts
-
Practical embedded Linux experience: kernel and driver work, device trees, cross-compilation toolchains, and a build system such as Yocto or Buildroot
-
Solid grounding in real-time systems: interrupt latency, scheduling, jitter, priority inversion, and the discipline to measure timing rather than assume it
-
Deep familiarity with hardware interfaces including SPI, I2C, CAN, UART, and camera interfaces such as MIPI CSI-2 or GMSL
-
Comfort reading schematics and datasheets, and debugging with oscilloscopes, logic analyzers, JTAG/SWD, and bus analyzers
-
Strong communication skills to drive alignment across electrical, mechanical, and controls teams
Nice to Have
-
Experience with bipedal or humanoid robots, legged locomotion platforms, or other high-DOF electromechanical systems
-
Motor control firmware experience: FOC commutation, current/velocity/position loops, encoder calibration, and fault protection
-
RTOS experience (Zephyr, FreeRTOS) or PREEMPT_RT and real-time tuning on Linux
-
Time-sensitive networking, or other deterministic fieldbus and distributed clock synchronization
-
Secure boot, signed images, and over-the-air update infrastructure
-
Familiarity with ROS 2 and how firmware-level data reaches the autonomy stack
-
Hardware-in-the-loop test rigs and CI for firmware
-
Board bring-up experience across multiple hardware revisions of the
Get remote hardware engineer jobs like this by email
One weekly digest. No spam, unsubscribe anytime.