Firmware Intern [Fall 2026]
Job description
About the role
Figure builds autonomous humanoid robots designed for commercial and residential environments. This internship focuses on the low-level software that powers our general-purpose machines. You will work directly with our engineering staff to refine hardware performance and improve our internal development systems. The role requires a methodical approach to debugging complex interactions between sensors and actuators in real time. You will contribute to the robustness of the firmware stack that controls critical physical behaviors. Expect to solve challenging problems that bridge the gap between high-level software logic and physical hardware constraints. Your work will directly influence the reliability and responsiveness of robots operating in dynamic settings.
Key facts
What you'll do
- Implement low-level C and C++ drivers for motor controllers to ensure precise actuator control and stability.
- Develop Python automation scripts to streamline hardware calibration procedures and reduce manual testing overhead.
- Design and maintain CI/CD pipelines to enforce rigorous build standards and accelerate integration testing cycles.
- Conduct hands-on lab integration sessions to validate hardware functionality in conjunction with software modules.
- Perform detailed analysis of sensor data streams to identify noise patterns and calibration drifts in sensing modules.
- Optimize battery management system routines to monitor cell health and predict capacity degradation during extended operations.
- Collaborate with senior engineers to define test procedures for communication protocols such as CAN and Ethercat.
- Utilize logic analyzers and oscilloscopes to capture electrical signals and diagnose timing issues in digital circuits.
- Iterate on bare-metal firmware components to minimize latency and maximize efficiency on resource-constrained hardware.
- Support the debugging of in-circuit behaviors using in-circuit debuggers to trace execution flow and memory states.
- Create documentation for new hardware interfaces to assist future developers in understanding system architecture.
- Validate communication buses including Ethernet, Serial, and USB to ensure reliable data transfer under load.
- Participate in Agile ceremonies to align development tasks with sprint goals and evolving project requirements.
- Provide constructive feedback on design proposals to improve firmware architecture and long-term maintainability.
Requirements
- You are currently pursuing a senior undergraduate degree or have recently graduated in Computer Science, Computer Engineering, or a closely related technical field.
- You must demonstrate proficiency in writing production-grade C and C++ code for embedded applications.
- You need practical experience with bare-metal programming techniques and real-time operating system concepts.
- You should have a solid understanding of computer architecture, including memory hierarchy and processor instruction sets.
- You are required to have hands-on experience with communication protocols such as CAN, Ethercat, Ethernet, Serial, or USB.
- You must be able to competently operate laboratory instruments like logic analyzers, oscilloscopes, and in-circuit debuggers.
- You need the ability to read and interpret technical datasheets and reference manuals for new hardware components.
- You should hold eligibility to work in the country location without sponsorship for the duration of the internship.
Nice to have
- Experience developing firmware for battery management systems or motor control applications.
- Prior involvement with CI/CD infrastructure to automate testing and deployment workflows.
- Familiarity with Test Driven Development methodologies and Agile software practices.
Practical notes
The engagement requires a minimum commitment of 10 weeks, with 1 to 2 terms preferred for continuity. Compensation is provided at an hourly rate between forty and forty-five dollars based on individual experience and technical skills. Specific details regarding benefits, such as health coverage or time-off policies, will only be discussed if an offer of employment is extended. This role is located in San Jose, Canada, and is not eligible for visa sponsorship. International applicants must ensure they have the right to work in this location without company support. The hourly compensation may vary within the stated range depending on relevant skills and experience. No other locations or remote arrangements are available for this position.