- Location
- San Francisco, California, US
- Type
- Full-time
- Department
- Engineering
- Source
- Y Combinator
Description
As an Embedded Software Engineer at Weave, you’ll build the software that connects our custom hardware to intelligent robot behavior. Our robots are vertically integrated from the ground up—from actuators and electronics to perception and autonomy—giving you the rare opportunity to influence every layer of the robotics stack. You’ll develop the foundational software that powers every robot we ship, enabling precise motion, reliable sensing, and safe operation in one of robotics’ most challenging environments: the home.
Working alongside electrical, mechanical, controls, and robotics engineers, you’ll transform new hardware into production-ready systems. From early board bring-up and hardware validation to performance optimization and field deployment, you’ll own software that ships on every robot and directly shapes the capabilities of the platform.
Responsibilities
-
Develop production embedded software: Design, implement, test, and maintain embedded software for robotic systems using modern C++. Develop firmware, device drivers, communication stacks (SPI, I²C, RS-485, CAN/CAN FD, Ethernet, or EtherCAT), and interfaces for sensors, actuators, GMSL cameras, and embedded peripherals.
-
Bring up new hardware: Collaborate with hardware and electrical engineers to integrate new carrier boards, and validate system functionality.
-
Build real-time systems: Develop deterministic software that meets timing constraints while managing concurrency, resource limitations, and hardware failures.
-
Design for reliability: Build diagnostics, health monitoring, calibration, and fault-handling systems that improve robot robustness and serviceability.
-
Debug across the stack: Investigate issues spanning hardware, firmware, and robotics software using oscilloscopes, logic analyzers, debuggers, and other engineering tools.
-
Build production software: Write maintainable, production-quality code that supports both rapid iteration and long-term reliability.
What You'll Bring
-
Embedded systems expertise: 4+ years of embedded Linux/systems software development, including hands-on bringup on modern application-class SoCs (NVIDIA Jetson, preferred)
-
Hardware bring-up: Experience with microcontrollers, device drivers, peripherals, board support packages, and custom hardware bring-up.
-
Modern C++: Strong proficiency developing production-quality C++ software for embedded or real-time systems.
-
Systems programming: Strong understanding of Linux systems programming, including threading, synchronization, memory management, IPC, scheduling, and performance optimization. Familiarity with the embedded Linux stack, including U-Boot, device trees, kernel configuration, and Buildroot or Yocto.
-
Hardware/software debugging: Comfortable reading schematics, probing hardware with oscilloscopes and logic analyzers, and debugging issues that span electrical, firmware, and software boundaries.
Nice to have
- Experience with secure boot, firmware update systems, or OTA infrastructure.