Staff Embedded Software Engineer

Figure7 months ago
San Jose, CA, United States
On-site
Full-time
Junior Level (1-3 years)

Job Description

Company Overview

Figure is an AI Robotics company developing a general purpose humanoid. Our humanoid robot, Figure 02, is designed for commercial tasks and the home. We are based in San Jose, CA and require 5 days/week in-office collaboration. It's time to build.

Your Responsibilities

  • Architect, design, implement and test embedded software in C++ running on the Humanoid compute platform
  • Develop Python tools to support data management, test automation or robot calibration
  • Continuously improve our development environment
  • Contribute to the development of our Continuous Integration and Continuous Deployment (CI/CD) infrastructure
  • Support hardware/software integration in the lab

Requirements

  • 10+ years of software engineering experience
  • Bachelor's or Master's degree in Computer Science or related field
  • Mastery of C++, Python and Linux
  • Linux Kernel Experience
  • Experience implementing real-time software
  • Good knowledge of computer architecture
  • Deep understanding of communication buses and protocols like Ethernet, Ethercat, Serial, CAN or USB
  • Comfortable using lab instruments (Oscilloscopes, logic analyzers...) and debugging tools (Lauterbach...).

Bonus Qualifications

  • Experience with the Bazel build system
  • Experience with Docker containers
  • Experience implementing CI/CD infrastructures
  • Familiar with Agile and Test driven development
  • Yocto experience

Salary Information

The US base salary range: for this full-time position is between $225,000 - $300,000 annually.

The pay offered: for this position may vary based on several individual factors, including job-related knowledge, skills, and experience. The total compensation package may also include additional components/benefits depending on the specific role. This information will be shared if an employment offer is extended.

Required Skills

Linux
Lab instruments usage (Oscilloscopes, logic analyzers)
Linux Kernel
Debugging tools (Lauterbach)
Python
Communication buses and protocols (Ethernet, Ethercat, Serial, CAN, USB)
Real-time software implementation
Computer architecture
C++