Embedded Software Engineer
Job description
About the role
The role owns embedded software for robotics compute platforms and collaborates across teams to integrate the stack on new hardware. It targets experienced engineers building accessible general purpose robots for households.
Software engineers turn product ideas into working code. Engineers work in small teams, review each other's work, and ship in small batches. Most teams follow agile practices such as sprints and daily standups. Engineers also write tests, fix bugs, and improve performance. The field values clear communication as much as technical skill. Engineers spend part of every week on planning, code review, and debugging, not just writing new code. The ability to explain a technical decision in plain words separates strong engineers from the rest.
Key facts
What you'll do
Bootloader, kernel, device tree, BSP, and drivers are owned for NVIDIA Jetson, Qualcomm, and similar SoCs powering embedded Linux compute units in product.
Optimization of performance across the full software stack requires close coordination with software and machine learning teams, spanning drivers, middleware, and application layers.
End-to-end OTA updates are designed and implemented using RAUC, Mender, SWUpdate, or equivalent frameworks to deliver reliable updates to deployed robots in households.
Requirements
A BS or MS in Computer Science, Computer Engineering, Electrical Engineering, or related technical field, or equivalent practical experience is required for candidates without a degree.
At least 3 years of embedded Linux or systems software development is required, including hands-on bringup on modern application-class SoCs such as NVIDIA Jetson, Qualcomm Snapdragon, or similar platforms.
Strong proficiency in C is required, with additional experience in C++ and/or Rust preferred for low-level systems programming essential for driver and integration work.
Experience with Yocto, Buildroot, or an equivalent embedded Linux build system is required, including custom layers, recipes, and production image customization.
Deep understanding of the Linux boot flow from bootloader to userspace is required, covering bootloaders, kernels, and early userspace initialization.
Collaboration with electrical engineers is required, including reading schematics, using scopes, logic analyzers, and JTAG, and debugging at the hardware software boundary.
Knowledge of power management, secure boot, watchdogs, and other production-readiness concerns is required for device deployment and reliability.
Experience developing CI pipelines for embedded Linux images is required to validate builds and firmware updates.
Nice to have
Delivery of at least one project from prototype phase into production demonstrates end-to-end execution in robotics or related domains.
Experience with PREEMPT_RT is a plus for real-time performance considerations.
Familiarity with RTOS-based firmware development supports broader embedded systems understanding.
Experience with Python for scripting, data analysis, or test automation can accelerate integration and tooling tasks.
Practical notes
This role may require occasional travel. Typical interview steps
Hiring for engineering roles usually starts with a recruiter screen, followed by one or two technical rounds. Candidates often solve a coding problem, discuss past projects, and answer system design questions. Some loops include a take-home task. Final rounds typically cover team fit and give candidates a chance to ask questions. Interviewers look for how you break down an unfamiliar problem, not just whether you reach the answer. Practicing a few problems aloud and reviewing your own past projects are the best preparation.
Good to know
Robotics platforms combine real-time constraints with demanding compute workloads. Engineers in this role work close to hardware and software layers.
Common tools in this domain include SoCs from NVIDIA and Qualcomm, Yocto and Buildroot, and OTA frameworks such as RAUC and Mender.
The field values strong C systems programming, kernel driver development, and integration across sensors and compute hardware.
Career paths often grow from embedded bringup to full-stack optimization across cloud-connected robotic systems.