This role sits at the intersection of robotics software, embedded systems, distributed systems, middleware, and hardware integration. You will work directly with engineers across locomotion, whole-body control, manipulation, perception, state estimation, and embedded software to ensure the humanoid platform operates reliably on real hardware.
We are looking for a strong C++ software engineer who enjoys working close to the robot, solving system-level challenges, and building robust software infrastructure for complex robotic systems.
Integrate software components across the humanoid stack, including locomotion, manipulation, whole-body control, state estimation, perception, diagnostics, and robot operations.
Design and maintain communication pathways between embedded systems, robot software, and higher-level applications.
Work with DDS-based communication systems and real-time software pipelines.
Support deployment and integration of robotics middleware frameworks such as ROS 2, Dora, DDS-native architectures, or other distributed robotics systems.
Collaborate with Middleware Engineers on the broader software platform architecture.
Bachelor's or Master's degree in Computer Science, Robotics, Electrical Engineering, Software Engineering, Mechatronics, or a related field.
Strong software engineering skills in modern C++ (C++17 or later).
Experience working with embedded systems or hardware-near software.
Strong Linux development experience, including:
Experience developing real-time or latency-sensitive applications.
Experience with DDS-based communication systems such as FastDDS, Cyclone DDS, RTI Connext, or comparable distributed communication frameworks.
Experience integrating software across complex systems involving hardware, sensors, controllers, and distributed software services.
Practical experience working with physical robots or robotic hardware platforms, not solely simulation environments.
Experience bringing up, integrating, troubleshooting, or deploying robotic systems on real hardware.
Strong understanding of software architecture, system integration, and debugging in complex environments.
Experience designing and implementing state machines for operational and fault-management workflows.
Familiarity with gRPC and Protocol Buffers.
Experience with containerized development environments using Docker, Nix, Podman, or comparable technologies.
Familiarity with modern software engineering practices, including CI/CD pipelines, dependency management, packaging, and reproducible build environments.
Familiarity with virtualized or hypervisor-based development environments, including virtual machines, KVM/QEMU, cross-compilation environments, or similar embedded software workflows.
Strong communication skills and the ability to collaborate effectively across software, controls, electronics, and mechanical engineering teams.
Experience with humanoid robots, legged robots, mobile manipulators, or other complex robotic systems.
Experience with robotics middleware and orchestration frameworks such as:
Familiarity with OROCOS RTT or other hard real-time robotics frameworks.
Experience integrating software into high-frequency control systems (500 Hz–1 kHz).
Exposure to locomotion, balancing, whole-body control, manipulation, or state-estimation systems.
Knowledge of QoS tuning, distributed communication architectures, and robotics middleware performance optimization.
Experience with safety-critical systems, fault-tree analysis (FTA), FMEA, or safety-oriented software development.
Familiarity with cross-compilation, embedded Linux, virtualization, and deployment pipelines for robotic products.
Contributions to open-source robotics software, middleware, infrastructure, or embedded systems projects.