Firmware Engineer
Job description
About the role
Figure is building general purpose humanoid robots for commercial and home use. We are currently developing the Figure 02 and need an engineer to handle firmware development for our core hardware systems. This role is based in San Jose and requires working from our office 5 days per week. You will own the end to end firmware lifecycle for critical robotic subsystems, translating high level requirements into robust low level implementations. You will partner closely with hardware engineers to define interfaces and ensure that silicon and software work together seamlessly in production. The position demands rigorous validation of real time behaviors and performance within safety and reliability constraints. You will contribute to the architectural decisions that shape how our robots sense, act, and interact with the world.
Key facts
What you'll do
- Implement low level firmware modules for motor controllers, battery management systems, and sensing hardware using C and C++.
- Establish a framework for code reuse and abstraction across heterogeneous hardware platforms to accelerate future robot programs.
- Author Python scripts to support hardware calibration routines and to drive automated test scenarios.
- Design and extend our CI/CD pipelines to streamline build, test, and deployment workflows for embedded targets.
- Perform hands on hardware and software integration in our lab environment to debug and validate system level functionality.
- Utilize advanced debugging tools such as Lauterbach to trace execution, inspect memory, and resolve complex software defects.
- Characterize communication performance and reliability when using protocols such as Ethernet, Ethercat, Serial, CAN, and USB.
- Employ oscilloscopes and logic analyzers to capture signals, correlate behavior, and verify timing in electromechanical systems.
- Collaborate with cross functional teams to define and document firmware interfaces, test plans, and release criteria.
- Drive improvements in reliability, determinism, and power efficiency for the Figure 02 platform through measured experimentation.
- Maintain and evolve existing firmware assets to ensure compatibility with new hardware revisions and software toolchains.
- Mentor junior engineers by providing clear technical guidance and code review focused on safety, clarity, and maintainability.
- Contribute to the creation of production ready artifacts including bootloaders, device drivers, and configuration databases.
- Support on site customer deployments and troubleshooting activities as required for commercial installations.
Requirements
- Hold a Bachelor or Master degree in Computer Science or a related technical field as the basis for your engineering foundation.
- Bring a minimum of 5 years of professional engineering experience in firmware or embedded software roles.
- Demonstrate proficiency in C, C++, and Python for developing, testing, and maintaining embedded software.
- Show deep expertise in low-level software development for bare-metal systems and real time operating systems.
- Possess a solid understanding of computer architecture, including memory systems, interrupts, and processor modes.
- Have hands on experience with communication protocols such as Ethernet, Ethercat, Serial, CAN, or USB.
- Be able to use laboratory equipment including oscilloscopes and logic analyzers for signal inspection and measurement.
- Be comfortable working with debuggers such as Lauterbach to perform detailed software analysis and troubleshooting.
- Exhibit strong problem solving skills and the ability to diagnose issues in complex, multi domain systems.
- Comply with company policies, security procedures, and regulatory requirements relevant to the product and environment.
- Thrive in a fast paced, collaborative environment where priorities may shift based on project needs and technical challenges.
- Communicate effectively with both technical and non technical stakeholders to align on goals and tradeoffs.
- Take ownership of your work, including planning, execution, and follow through to successful completion.
- Be willing to travel as needed for hardware validation, customer support, or team collaboration activities.
Nice to have
- Prior work with battery management systems or motor controllers on robotic platforms.
- Experience setting up and maintaining CI/CD infrastructure for embedded software pipelines.
- Familiarity with Agile methodologies and test driven development practices.
Practical notes
Compensation is determined based on individual experience, skills, and job related knowledge. Specific details regarding the full benefits package will be provided if an offer is extended. This role is based in San Jose and requires working from our office 5 days per week. Employment is full-time. Travel may be required for hardware validation, customer support, or team collaboration activities. No current visa sponsorship information is provided. Please refer to the official application or hiring team for precise start dates and scheduling expectations.