Software Engineer, Hardware Interface
Listed on 2026-10-18
-
Software Development
Embedded Software Engineer, Robotics, Embedded Systems/ Firmware/ IoT, Software Engineer
Agility's commercially deployed humanoids operate alongside teams in warehouses, manufacturing facilities, and distribution centers—tackling physically demanding and repetitive tasks while enabling workers to focus on higher-value work. With industry-leading safety standards and years of proven deployment data, we're pioneering a new era of automation that enhances human potential.
AboutThe Role
Agility Robotics is building the future of work through humanoid robots that operate in human environments. In this position, you will own and drive the development of critical low-level software capabilities that power our state-of-the‑art humanoid robots, improving the robustness, diagnostics, safety, and scalability of our systems. You will help define technical direction, architect solutions across hardware and software boundaries, and partner closely with cross‑functional teams to bring new robotic capabilities from early prototypes into reliable, production‑ready systems.
You will also be on the front line of robot development, building up brand‑new prototypes and leading complex technical efforts that transform piles of parts into functional, testable systems.
Own the design, development, and evolution of C++ software components that power our robots, interfacing with OS drivers and hardware to enable high‑bandwidth, low‑latency control.
Drive technical direction and architecture decisions for hardware interface software, balancing performance, reliability, maintainability, and scalability.
Work with cross‑disciplinary teams to solve complex problems involving the integration of software, electrical, mechanical, and robotic systems.
Debug complex cross‑domain problems and establish best practices for diagnostics, observability, and failure handling.
Integrate diverse computing systems through a variety of communication media, such as WiFi, networking, serial, and industrial fieldbus.
Write performant, well‑tested, maintainable, and well‑documented C++ software.
Mentor and provide technical guidance to other engineers while raising the engineering bar across the team.
About YouMS in robotics, computer science, electrical engineering, or related field with 8+ years of industry experience (or equivalent experience).
Strong expertise writing modern C++ (17, 20) for complex, performance‑sensitive systems.
Demonstrated ability to design and deliver large‑scale software systems with significant hardware/software integration complexity.
Deep understanding of software engineering best practices for writing performant, maintainable, and reliable production systems.
Proficient in using and programming for recent Linux systems.
Extensive experience writing and debugging software for hardware‑in‑the‑loop systems.
Experience debugging cross‑domain (i.e. electrical, mechanical, and software) problems with electro‑mechanical systems.
Experience with implementation of automation field buses such as EtherCAT, CAN, Profinet, etc. (EtherCAT is highly desirable).
Ability to lead technical discussions, influence engineering decisions, and communicate effectively across disciplines.
Authorization to work in the USA.
Bonus PointsExperience developing real‑time or low‑latency systems.
Experience writing C++ code for embedded systems.
Experience with electronic circuit debugging tools (e.g. multimeters, oscilloscopes, logic analyzers).
Knowledge of brushless electric motors and motor control.
Knowledge of networking protocols and network configuration in a Linux environment (i.e. systemd / network).
Experience with Python 3.6+.
Familiarity with standard agile and software development processes (issue tracking tools (Jira), feature branching, version control (Git), continuous integration and deployment).
Compensation and…(If this job is in fact in your jurisdiction, then you may be using a Proxy or VPN to access this site, and to progress further, you should change your connectivity to another mobile device or PC).