> Markdown version of [/jobs/ext/2706544-firmware-engineer](https://www.wearedevelopers.com/jobs/ext/2706544-firmware-engineer). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # Firmware Engineer - **Company:** Firmware Partners, LLC - **Location:** Seattle, United States - **Experience:** Expert - **Contract:** Permanent contract - **Skills:** Board Bringup, Abstraction Layers, Booting (BIOS), C++ (Programming Language), Communications Protocols, Computer Engineering, Continuous Integration, Software Debugging, Device Drivers, Memory Management, Linux on Embedded Systems, Ethernet, Firmware, Hardware Interface Design, Hardware Platform Interface, Real-Time Operating Systems, Regression Testing, Software Deployment, System Programming, Systems Integration, Universal Asynchronous Receiver/Transmitter, Data Logging, Serial Peripheral Interface, PIC Microcontroller, Safety Critical Systems, Hardware Testing, Reliability of Systems - **Published:** September 4, 2026 - **Apply:** https://startup.jobs/senior-firmware-engineer-aim-8333732 ## About the Role You're a firmware engineer who thrives at the boundary between hardware and software. You write clean, efficient, reliable C++ code that interacts directly with real-world systems - and you care deeply about correctness, timing, and failure modes. You're comfortable working close to the metal: microcontrollers, embedded Linux systems, device drivers, communication buses, and hardware interfaces. You debug with oscilloscopes, logs, and intuition. You understand that firmware is not just code - it's the behavior of the machine. You take ownership of systems end-to-end - from hardware bring-up to production deployment - and you design firmware that is testable, observable, and resilient in the field. You have strong judgment about trade-offs between performance, safety, and complexity. You want to work on systems where reliability is non-negotiable and where your code directly controls machines operating in the real world., * Bachelor's degree in Computer Engineering, Electrical Engineering, Robotics, or equivalent hands-on experience. * 5+ years of professional experience in firmware or embedded systems development. * Strong C++ experience in embedded or systems programming environments. * Experience developing firmware for microcontrollers or embedded Linux systems. * Experience with hardware interfaces and communication protocols (CAN, SPI, I2C, UART, Ethernet). * Strong debugging skills across hardware/software boundaries. * Experience designing systems for reliability, safety, and real-world deployment. * Proven ability to deliver production-quality firmware in cross-functional environments., * Experience with safety-critical systems or real-time embedded systems. * Experience with robotics, autonomy, or heavy equipment systems. * Familiarity with RTOS or real-time scheduling concepts. * Experience with hardware bring-up and board-level debugging. * Experience with firmware update mechanisms (OTA, bootloaders, secure updates). * Experience with observability in embedded systems (logging, tracing, telemetry). * Familiarity with HIL testing, validation frameworks, or hardware test automation. * Experience working in high-reliability or high-entropy environments. How you'll stand out * You design firmware that is simple, deterministic, and highly reliable. * You think in terms of systems - not just code - and understand machine behavior end-to-end. * You bring a strong safety mindset and anticipate failure modes before they occur. * You debug issues others can't - across firmware, hardware, and system interactions. * You raise engineering rigor through clarity, ownership, and high standards. * You connect firmware decisions directly to machine performance and customer outcomes. ## Description * Design and implement firmware for AIM's Generation 2 hardware platform using C++. * Develop low-level drivers, hardware abstraction layers (HAL), and system services. * Build robust interfaces to sensors, actuators, ECUs, and communication buses (CAN, SPI, I2C, UART, Ethernet). * Ensure deterministic behavior across real-time and near-real-time control paths. Deliver Production-Ready Firmware * Write clean, efficient, testable embedded C++ code. * Implement robust error handling, watchdogs, and fail-safe mechanisms. * Build firmware that is resilient to hardware faults, communication loss, and environmental variability. * Contribute to firmware standards, architecture, and coding practices. Improve System Reliability & Observability * Design and implement telemetry, logging, and debugging capabilities for embedded systems. * Diagnose complex system issues across firmware, hardware, and system integration boundaries. * Drive root-cause analysis and eliminate recurring failures in field deployments. Own Hardware Bring-Up & Integration * Lead firmware bring-up for new hardware (Gen2 boards, daughterboards, interposers). * Work closely with Electrical and Mechanical Engineering to validate designs and interfaces. * Support validation efforts including HIL testing, regression testing, and field validation. Drive Performance & Real-Time Behavior * Optimize timing, memory usage, and CPU utilization across embedded systems. * Ensure real-time constraints are met for control and safety-critical paths. * Balance system performance with robustness and maintainability. Raise the Engineering Bar * Mentor engineers on embedded systems, firmware design, and debugging techniques. * Improve firmware development workflows, CI/CD pipelines, and testing frameworks. * Establish best practices for firmware reliability, safety, and maintainability. ## Related Videos - [More efficient software for more efficient microchips](https://www.wearedevelopers.com/videos/1164-more-efficient-software-for-more-efficient-microchips) - [The Gashlycrumb Tinies of AI Networking You Must Know (or Languish!)](https://www.wearedevelopers.com/videos/2067-the-gashlycrumb-tinies-of-ai-networking-you-must-know-or-languish) - [Playing Pong on a shoulder press machine](https://www.wearedevelopers.com/videos/100140-playing-pong-on-a-shoulder-press-machine) - [Crypto-secure Data Management with In-Database Blockchain](https://www.wearedevelopers.com/videos/632-crypto-secure-data-management-with-in-database-blockchain) - [Building a hypercar from scratch](https://www.wearedevelopers.com/videos/607-building-a-hypercar-from-scratch) - [Docker network without Docker](https://www.wearedevelopers.com/videos/1418-docker-network-without-docker) ## Related Articles - [What is Software Engineering?](https://www.wearedevelopers.com/magazine/289-what-is-software-engineering) - [Top Characteristics of a Software Engineer](https://www.wearedevelopers.com/magazine/166-top-characteristics-of-a-software-engineer) - [Is Software Engineering Hard?](https://www.wearedevelopers.com/magazine/448-is-software-engineering-hard) - [How to Answer the Interview Question: “Why Do You Want to Be a Software Engineer?”](https://www.wearedevelopers.com/magazine/392-how-to-answer-the-interview-question-why-do-you-want-to-be-a-software-engineer) - [Software Engineer Career: Things You Should Know](https://www.wearedevelopers.com/magazine/143-software-engineer-career-things-you-should-know) - [How software is steering vehicle technology](https://www.wearedevelopers.com/magazine/515-how-software-is-steering-vehicle-technology)