Staff / Principal Firmware Engineer
New Yesterday
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. Our first commercial product launch with the technology is scheduled for summer 2022.
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
Key Responsibilities
Technical Leadership
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.
Firmware & Control Development
Implement robust, portable firmware using C/C++ for ARM-based microcontrollers and SBCs (e.g., STM32, 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.
Testing & Quality Engineering
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.
Cross-Disciplinary Collaboration
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.
Documentation & Lifecycle Management
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.
Required Qualifications
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 bring-up.
Skilled with hardware debugging tools (oscilloscope, logic analyzer, multimeter, etc.).
Familiarity with Linux-based SBCs (e.g., NXP i.MX, Raspberry Pi, etc.).
Preferred Qualifications
Experience with CanOpen protocol.
Familiarity with PLCs , ladder logic, or industrial automation frameworks.
Background in industrial automation , robotics, or distributed systems.
Experience with firmware bootloaders, OTA update strategies, and secure firmware deployment.
Understanding of network protocols (Ethernet, MQTT, TCP/IP) in embedded contexts.
Exposure to DevOps practices for firmware (artifact management, CI/CD pipelines).
A maker/tinkerer mindset - whether from robotics competitions, hobby projects, or hardware hacking.
Why Join Us?
A chance to be an early team member and leader of a rapidly growing startup and have an impact on company and technology direction
The ability to solve challenging problems with a skilled, dedicated and friendly multi-disciplinary team
A balanced, highly collaborative work environment
Competitive medical, dental, and vision coverage, with 401K, life and disability coverage
A PTO policy where we encourage and expect all employees to take time to enjoy life outside of work
Discount on groceries from our store
The salary range for this position is 180,000-$215,000 plus stock and benefits. Pay within the range is based on candidate experience, job-specific skills, education, and work location.
- Location:
- Mountain View, CA, United States
- Category:
- Computer And Mathematical Occupations