Staff Firmware Engineer
Role details
Job location
Tech stack
Job description
We are seeking a Staff Firmware Engineer to plan robot firmware architecture, design subsystems, and develop robust and reliable firmware for our full line of robots. In this role, you will collaborate with a multi-discipline team of engineers to understand the unique requirements for our products and play a key role in ensuring that we have robot designs that are robust and production-ready. You will also serve as the bridge between hardware and higher level robot control algorithms by documenting interfaces and providing support to other engineers.
About The Work:
- Contribute to the C++ firmware architecture that drives our robot's low-level sensor network, controls, and power management systems
- Develop the firmware communication layer utilizing EtherCAT and CAN
- Write firmware for the hardware abstraction layer, peripheral drivers, and applications
- Perform real-time hardware testing and debugging using benchtop test equipment such as logic analyzers and oscilloscopes.
- Work with cross-disciplinary teams to solve complex problems dealing with the integration of software and hardware
- Write performant, well-tested, maintainable, and well-documented C++ code
Requirements
- BS in computer science, electrical engineering, or related field with 10+ years industry experience
- Experience writing modern C++ (17, 20)
- Experience using FreeRTOS or similar
- Experience with best practices for writing performant and maintainable software
- Proficiency with a Linux-based development environment
- Ability to read schematics, PCB layouts, and component datasheets
- Ability to verbally communicate technical information effectively
Preferred to have:
- Experience with implementation of automation fieldbuses such as EtherCAT, CAN, etc. EtherCAT is highly desirable
- Experience writing embedded C++ for ARM systems
- Experience developing real-time or low-latency systems
- Experience designing and implementing hardware-in-the-loop (HIL) testing frameworks for embedded systems
- Experience with unit testing such as with GTest and coverage analysis
- Proficiency in Python (3.6+)
- Familiarity with standard agile and software development processes (issue tracking tools (Jira), feature branching, version control (Git), continuous integration and deployment)
- Familiarity with using AI in coding a plus
Benefits & conditions
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 $194,000-$252,000 USD
In addition to base pay, our competitive total rewards package consists of the following for full-time employees:
- 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 10 company holidays, including a winter shutdown.
- Non-Exempt Employees: 10 vacation days, paid sick leave, and 10 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.