Staff Software Engineer, Hardware Interface
About The 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.
About The Work
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 You
MS 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 fieldbuses 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 Points
Experience 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)
This a hybrid position based out of one of our Fremont, CA office.
The final salary offered to a successful candidate will be dependent on several factors that may include but are not limited to: job-related knowledge, skills, and experience. Agility Robotics is a multi-state employer and this salary range may not reflect positions who work in other locations. These ranges may be modified in the future.
Anticipated Base Salary Range
$230,000—$299,000 USD