Principal Firmware Engineer
Listed on 2025-12-26
-
Software Development
Embedded Software Engineer, Robotics, Software Engineer, Embedded Systems / Firmware
Fulfil is a well-funded, rapidly growing, and inclusive company that has developed a custom automation robotics system to pick and pack online orders of groceries and other consumables, bringing delight and a value proposition to consumers that doesn’t exist today. Additionally, its unique design and technology is purpose-built to solve today’s environmental problems in the world’s food supply chain. Founded by a team with previous startup success and backed by top-tier VCs, we are committed to reducing waste, improving environmental impact, and reducing emissions with truly new technology.
We can’t do it alone -- we’re seeking curious, capable, passionate team members motivated by the opportunity to create lasting impact on the world through their work. This role offers ample growth opportunities while working side-by-side with an impassioned, multi-disciplinary team spanning mechanical design, software, computer vision, systems integration, and ops to design and operationalize world-changing technology.
Fulfil is committed to creating an inclusive culture, and we celebrate diversity of all kinds. If this sounds like the kind of environment that you find intriguing, then please apply even if you don’t feel you meet all the requirements listed below. We'd love to hear from you.
Why you’ll love working at Fulfil
- Autonomy and ownership; you design it, build it, and own it.
- Amazing team
- Build robots that do cool things
- Rapid growth
- Inclusive culture
- Work-life balance
- Collaborative culture
- We hire great people and trust them
- Lead architecture and development of embedded firmware systems from concept through production.
- Drive system design across multiple communication layers: from physical protocols (CAN, I2C) to high-level RPC interfaces.
- Mentor and coach engineers on best practices, code quality, and architectural decisions.
- Implement robust, portable firmware using C/C++ for ARM-based microcontrollers and SBCs (e.g., STM
32, NXP, Raspberry Pi-class devices). - Develop and maintain protocol implementations for CAN bus, Modbus, I2C, UART, and SPI.
- Design and maintain gRPC and Protocol Buffer interfaces to expose hardware services cleanly and safely to higher-level systems (e.g., orchestration, cloud, or local UIs).
- Integrate Linux-based SBC firmware modules with hardware abstraction layers.
- Implement motor control algorithms, including tuning, sequencing, encoder-based positioning, and jerk limiting.
- Use real-world feedback (encoders, sensors, timing feedback) to optimize motion sequences and avoid unnecessary re-homing.
- Design and maintain unit testing and HIL (Hardware-in-the-Loop) environments.
- Debug systems at all layers — from firmware logic to sensor integration to timing drift.
- Use oscilloscopes, multimeters, logic analyzers, and related tools to bring up and validate hardware interfaces.
- Work with systems, hardware, software, and operations teams to align on firmware behaviors and API contracts.
- Own interface boundaries between hardware components, middleware, and application layers.
- Participate in bring-up, debugging, and integration of custom hardware.
- Ensure detailed documentation of firmware APIs, hardware mappings, and integration guides.
- Promote best practices for version control, CI/CD for firmware, and structured release processes.
- Located within commuting distance to Mountain View Ca
- 8+ years of experience in embedded systems firmware development and architecture.
- Deep understanding of embedded communication protocols: CAN bus, Modbus, I2C, SPI, UART.
- Experience with motion control, motor tuning, encoder feedback, and trajectory optimization (e.g., jerk limiting).
- Strong C and C++ skills; familiarity with embedded Linux, shell scripting, and build systems (Bazel, CMake, etc.).
- Experience designing gRPC + Protobuf interfaces between firmware modules and external software.
- Proven ability to lead unit testing strategy and build HIL testing environments.
- Experience interfacing with electrical engineering teams and hardware…
(If this job is in fact in your jurisdiction, then you may be using a Proxy or VPN to access this site, and to progress further, you should change your connectivity to another mobile device or PC).