Senior 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 be developing the low-level software that powers our state-of-the art humanoid robots, constantly improving the robustness, diagnostics, and safety of our system. You will also be on the front-line of robot development, building up brand-new prototypes and working with highly cross-functional teams to transform piles of parts into functional, testable systems.
About The Work
- Contribute to the C++ software stack that powers our robots, interfacing with OS drivers and hardware to enable high-bandwidth, low-latency control
- Work with cross-disciplinary teams to solve complex problems dealing with the integration of software and hardware
- Debug complex cross-domain problems and integrate learned failure modes into improved diagnostics and error reporting
- Integrate diverse computing systems through a variety of communication media: such as Wifi, networking, serial, industrial fieldbus
- Write performant, well-tested, maintainable, and well-documented C++ software
Requirements
- MS in robotics, computer science, or related field with 2-3 years industry experience (or BS with 5+ years industry experience)
- Skilled at writing modern C++ (17, 20)
- Knowledge of best practices for writing performant and maintainable software
- Proficient in using and programming for recent Linux systems
- 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
- Able to communicate technical information effectively both orally and in writing with other team members
Qualifications
- Bonus Points: Experience with implementation of automation fieldbuses such as EtherCAT, CAN, Profinet, etc. EtherCAT is highly desirable
- 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 / networkd)
- 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)
Skills
- Experience with implementation of automation fieldbuses such as EtherCAT, CAN, Profinet, etc. EtherCAT is highly desirable
- 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 / networkd)
- 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)
Benefits
- 401(k) Plan: Includes a 6% company match
- Equity: Company stock options
- Insurance Coverage: 100% company-paid medical, dental, vision, and short/long-term disability insurance for employees
- Benefit Start Date: Eligible for benefits on your first day of employment
- Well-Being Support: Employee Assistance Program (EAP)
- Time Off: Exempt Employees: Flexible, unlimited PTO and 12 company holidays, including a winter shutdown
- Non-Exempt Employees: 10 vacation days, paid sick leave, and 12 company holidays, including a winter shutdown, annually
- On-Site Perks: Catered lunches four times a week and a variety of healthy snacks and refreshments at our Salem and Pittsburgh locations
- Parental Leave: Generous paid parental leave programs
- Work Environment: A culture that supports flexible work arrangements
- Growth Opportunities: Professional development and tuition reimbursement programs
- Relocation Assistance: Provided for eligible roles
- Annual Discretionary Bonus: Provided for eligible roles
Pay
The anticipated salary range for this role is $175,000—$273,000 USD. The final salary offered to a successful candidate will be dependent on several factors that may include but are not limited to: market location, job-related knowledge, skills, and experience.
Schedule
This is a hybrid role based out of one of our Salem, OR, Pittsburgh, PA, or Fremont, CA offices.