Senior Firmware Engineer - User Interface

San Bruno, California

Mill is all about answering a simple question: how can we prevent waste? Less waste can save time, money, energy, maybe even our planet. And there’s no better place to start than food. Food waste is one of the most solvable climate problems facing us today. Plus, our trash really stinks. It’s gross, heavy, and our least favorite chore. At Mill we are striving to build a better environment for all, as we take on climate and kitchen change.

We are seeking an extraordinary Firmware Engineer to lead development of the embedded software platform for our next-generation product. You will work across Linux-based systems (e.g., Raspberry Pi–class SoCs) and microcontrollers to bring up hardware, integrate sensors and actuators, and power the product’s user interface and overall experience. Collaborating closely with hardware designers, product, and software teams, your work will be crucial in turning innovative concepts into reliable, delightful products in people’s homes.

Key Responsibilities

  • Design, implement, and maintain firmware and Linux-based services for our core product platform (e.g., Raspberry Pi or similar SoCs plus companion MCUs).
  • Bring up new hardware: bootloaders, board support packages, device trees, and low-level drivers for sensors, motors, connectivity modules, and other peripherals.
  • Implement and debug drivers and application-level interfaces for I²C, SPI, UART, GPIO, PWM, and other common embedded buses.
  • Integrate and support displays (HDMI/DSI/LVDS), working closely with design and product teams to deliver responsive, reliable UIs.
  • Collaborate with software/UI engineers to enable embedded UI frameworks (e.g., Qt, LVGL, or browser-based UIs) and ensure smooth interaction between firmware, UI, and cloud services.
  • Define and implement inter-processor communication between Linux SoCs and MCUs for telemetry, control, and safety-critical paths.
  • Profile and optimize system performance and robustness, ensuring that UI, connectivity, sensors, and actuators coexist without performance degradation.

Required Qualifications

  • Bachelor’s or Master’s degree in Computer Science, Electrical Engineering, or related discipline, or equivalent experience.
  • 5+ years of experience in embedded firmware/software engineering, working on real products that ship to customers.
  • Strong proficiency in C/C++ for embedded systems (MCUs and/or Linux), with a solid understanding of memory management, interrupts, DMA, and real-time constraints.
  • Hands-on experience developing on Linux-based embedded platforms (e.g., Raspberry Pi, SoMs/compute modules, or similar SBCs): cross-compilation, toolchains, and debugging on target.
  • Solid understanding of I²C, SPI, UART, GPIO, and related low-level interfaces; comfortable reading schematics and hardware datasheets.
  • Experience bringing up new boards or hardware revisions and integrating drivers into a Linux system (kernel modules and/or device-tree-level configuration).
  • Proven prototyping ability—quickly translating high-level product requirements into 
  • Strong debugging skills, including use of JTAG, GDB, logging/tracing, and lab instruments (oscilloscope, logic analyzer).
  • Excellent communication skills, capable of producing clear documentation, architecture diagrams, and collaborating effectively across disciplines.

Preferred Skills

  • Experience integrating and tuning display pipelines and touchscreens for embedded products.
  • Experience with embedded UI frameworks or stacks (e.g., Qt Embedded, LVGL, Flutter, or web-based UIs on embedded browsers).
  • Familiarity with Linux system architecture for embedded devices: systemd, device trees, kernel configuration, packaging, and build systems (Yocto, Buildroot, Debian-based, etc.).
  • Experience with OTA firmware/software update mechanisms for both MCUs (bootloaders) and Linux SoCs (partitioning, rollback strategies).
  • Exposure to camera or vision systems (e.g., basic camera bring-up, simple image capture pipelines) is a plus but not required.
  • Previous experience in startups or rapid prototyping environments, comfortable working through ambiguity and iterating quickly.
  • Familiarity with Agile methodologies, version control (Git/GitHub), CI/CD pipelines, and project management tools (e.g., JIRA).

The estimated base salary range for this position is $170k to $225k, which does not include the value of benefits or a potential equity grant. A wide range of factors are considered in making compensation decisions, including but not limited to skill sets, market conditions, experience and training, licensure and certifications, and business and organizational needs.

Create a Job Alert

Interested in building your career at Mill? Get future opportunities sent straight to your email.

Apply for this job

*

indicates a required field

Phone
Resume/CV*

Accepted file types: pdf, doc, docx, txt, rtf

Cover Letter

Accepted file types: pdf, doc, docx, txt, rtf


Onsite in San Bruno required *

Voluntary Self-Identification

For government reporting purposes, we ask candidates to respond to the below self-identification survey. Completion of the form is entirely voluntary. Whatever your decision, it will not be considered in the hiring process or thereafter. Any information that you do provide will be recorded and maintained in a confidential file.

As set forth in Mill’s Equal Employment Opportunity policy, we do not discriminate on the basis of any protected group status under any applicable law.

Select...
Select...
Race & Ethnicity Definitions

If you believe you belong to any of the categories of protected veterans listed below, please indicate by making the appropriate selection. As a government contractor subject to the Vietnam Era Veterans Readjustment Assistance Act (VEVRAA), we request this information in order to measure the effectiveness of the outreach and positive recruitment efforts we undertake pursuant to VEVRAA. Classification of protected categories is as follows:

A "disabled veteran" is one of the following: a veteran of the U.S. military, ground, naval or air service who is entitled to compensation (or who but for the receipt of military retired pay would be entitled to compensation) under laws administered by the Secretary of Veterans Affairs; or a person who was discharged or released from active duty because of a service-connected disability.

A "recently separated veteran" means any veteran during the three-year period beginning on the date of such veteran's discharge or release from active duty in the U.S. military, ground, naval, or air service.

An "active duty wartime or campaign badge veteran" means a veteran who served on active duty in the U.S. military, ground, naval or air service during a war, or in a campaign or expedition for which a campaign badge has been authorized under the laws administered by the Department of Defense.

An "Armed forces service medal veteran" means a veteran who, while serving on active duty in the U.S. military, ground, naval or air service, participated in a United States military operation for which an Armed Forces service medal was awarded pursuant to Executive Order 12985.

Select...

Voluntary Self-Identification of Disability

Form CC-305
Page 1 of 1
OMB Control Number 1250-0005
Expires 04/30/2026

Why are you being asked to complete this form?

We are a federal contractor or subcontractor. The law requires us to provide equal employment opportunity to qualified people with disabilities. We have a goal of having at least 7% of our workers as people with disabilities. The law says we must measure our progress towards this goal. To do this, we must ask applicants and employees if they have a disability or have ever had one. People can become disabled, so we need to ask this question at least every five years.

Completing this form is voluntary, and we hope that you will choose to do so. Your answer is confidential. No one who makes hiring decisions will see it. Your decision to complete the form and your answer will not harm you in any way. If you want to learn more about the law or this form, visit the U.S. Department of Labor’s Office of Federal Contract Compliance Programs (OFCCP) website at www.dol.gov/ofccp.

How do you know if you have a disability?

A disability is a condition that substantially limits one or more of your “major life activities.” If you have or have ever had such a condition, you are a person with a disability. Disabilities include, but are not limited to:

  • Alcohol or other substance use disorder (not currently using drugs illegally)
  • Autoimmune disorder, for example, lupus, fibromyalgia, rheumatoid arthritis, HIV/AIDS
  • Blind or low vision
  • Cancer (past or present)
  • Cardiovascular or heart disease
  • Celiac disease
  • Cerebral palsy
  • Deaf or serious difficulty hearing
  • Diabetes
  • Disfigurement, for example, disfigurement caused by burns, wounds, accidents, or congenital disorders
  • Epilepsy or other seizure disorder
  • Gastrointestinal disorders, for example, Crohn's Disease, irritable bowel syndrome
  • Intellectual or developmental disability
  • Mental health conditions, for example, depression, bipolar disorder, anxiety disorder, schizophrenia, PTSD
  • Missing limbs or partially missing limbs
  • Mobility impairment, benefiting from the use of a wheelchair, scooter, walker, leg brace(s) and/or other supports
  • Nervous system condition, for example, migraine headaches, Parkinson’s disease, multiple sclerosis (MS)
  • Neurodivergence, for example, attention-deficit/hyperactivity disorder (ADHD), autism spectrum disorder, dyslexia, dyspraxia, other learning disabilities
  • Partial or complete paralysis (any cause)
  • Pulmonary or respiratory conditions, for example, tuberculosis, asthma, emphysema
  • Short stature (dwarfism)
  • Traumatic brain injury
Select...

PUBLIC BURDEN STATEMENT: According to the Paperwork Reduction Act of 1995 no persons are required to respond to a collection of information unless such collection displays a valid OMB control number. This survey should take about 5 minutes to complete.