How we work
Where hardware gets waterfall, firmware gets agile. That is only possible with the supporting practices in place: unit and integration tests running automatically, TDD, an agile story tracker, and early over-the-air upgrade support so that updating a device is a solved problem long before anyone needs it.
We start device driver development on dev kits while the boards are still being fabricated, then move to the real hardware at board bring-up. Bring-up is a milestone we take seriously — it is where firmware and hardware assumptions meet for the first time.
We also care what happens after we leave. There is a saying that software is never finished, only abandoned. We write maintainable, modular source code for somebody else to pick up, and we train whoever takes it on, on the codebase and the hardware design assets.
What that looks like in practice
The interaction between the iFixit Iron and its Power Station runs over a custom USB PD alt-mode we implemented, carrying fast UART data from the Iron to the Power Station over repurposed USB-C pins. On top of that, dynamic USB PD PDOs change how much power a given Iron can draw in real time, based on battery state of charge, how many Irons are in use, and what the Iron currently needs. The Power Station also works as a generic USB PD battery bank for other devices.
Safety on that product is a firmware responsibility. The heater turns off if the Iron is dropped, or if the tip temperature does not rise the way the power going into it says it should.
On Enso, over-the-air updates had no vendor answer. Most devices have a single MCU with built-in bootloader support; Enso had physically separate main MCU and BLE chips, and no vendor supported that configuration. We wrote a custom bootloader with integrity checks that upgrades both chips at once. The same project used FreeRTOS with a vendor PPG signal-processing library to read heart rate, then drove an LED animation and haptic feedback that had to feel like a real heartbeat.
For Emme, the sensing was the hard part: we wrote the algorithms and digital signal processing that detect the case being opened and the pill pack being removed.












