About the Role
We are seeking a highly skilled Firmware Engineer to develop, implement, and optimize custom firmware for a proprietary controller designed by our Controls Engineering team. This role involves working closely with controls engineers, hardware designers, and system integrators to deliver robust, real-time embedded software. The firmware may be based on existing open-source platforms (e.g., ArduPilot) or developed entirely from scratch, depending on project requirements.
Key Responsibilities
- Develop, test, and maintain firmware for a custom controller built in-house by the Controls Team.
- Build firmware using ArduPilot, PX4, or other open-source autopilot stacks, or design a fully custom firmware architecture where needed.
- Implement control algorithms, communication protocols, actuator drivers, sensor interfaces, and safety logic.
- Collaborate with Controls Engineers to translate control models and system requirements into real-time embedded software.
- Work with Hardware/Electronics teams to verify firmware-hardware integration, including debugging using logic analyzers, and simulation tools.
- Optimize firmware for performance, reliability, and deterministic real-time behavior.
- Develop documentation, tools, and processes for testing, validation, and continuous integration of embedded software.
Required Qualifications
- Bachelor’s or Master’s degree in Electrical Engineering, Computer Engineering, Robotics, Embedded Systems, or a related field.
- 3–8+ years of experience in embedded firmware development for microcontrollers (STM32, PIC, ESP32, ARM Cortex-M, etc.).
- Strong proficiency in C/C++ for embedded systems.
- Experience with RTOS, bare-metal programming, and low-level firmware architecture.
- Familiarity with open-source autopilot stacks such as ArduPilot or PX4, OR experience building custom firmware from the ground up.
- Demonstrated ability to read schematics, understand hardware design constraints, and debug firmware/hardware interactions.
- Experience with version control (Git), CI/CD for embedded systems, and structured engineering workflows.
Preferred / Nice-to-Have
- Experience with control systems implementation (PID, state estimation, MPC, observers, etc.).
- Understanding of robotics, autonomous systems, or motion control.
- Experience with Simulink/Model-Based Development or autogenerated code.
- Knowledge of safety-critical embedded software design and compliance standards.
- Familiarity with Linux-based development environments or companion computers.
- Experience with hardware bring-up and board support packages (BSP).