Staff Firmware Engineer

Agility Robotics Inc

San Francisco, CA

JOB DETAILS
SKILLS
ARM (Advanced RISC Machine), Agile Programming Methodologies, Algorithms, Analysis Skills, Architectural Design, Artificial Intelligence (AI), Atlassian JIRA, Automation, Best Practices, C++ Programming Language, Communication Skills, Computer Firmware, Computer Science, Continuous Deployment/Delivery, Continuous Integration, Cross-Functional, Datasheets, Device Drivers, Documentation, Electrical Engineering, Embedded Systems, Git, Hardware Debugging, Hardware Design, Hardware Quality Assurance, Hardware-Software Integration, Linux Operating System, Logic Analyzer, Oscilloscope, Power Management, Printed Circuit Board (PCB) Layout, Problem Solving Skills, Python Programming/Scripting Language, Schematics, Software Development, Source Code/Configuration Management (SCM), Test Equipment, Unit Test
LOCATION
San Francisco, CA
POSTED
30+ days ago

About The Role

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.

Location --------

This position can be based at our San Francisco Bay Area office. Regular travel to Salem, typically one week per month, will be required.

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

About You

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 Qualifications

• 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

About the Company

A

Agility Robotics Inc