Software-engineer Remote- & Homeoffice Jobs in san-bruno ∙ Seite 1

11 Remote- und Homeoffice-Jobs online

Senior Firmware Engineer - User Interface

Mill · San Bruno, Kanada · On-site

  • Optionales Büro in San Bruno
Jetzt bewerben

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.