After more than a decade of designing electronics and writing firmware, I'm convinced of one thing: the cleanest products come from engineers who refuse to draw a hard line between the hardware and the code that runs on it.

One system, not two hand-offs

When a circuit is designed in isolation and then "thrown over the wall" to a firmware team, small mismatches accumulate. A pin that's awkward to reach in software, a missing test point, an ADC reference that drifts under load — each is cheap to fix on the schematic and expensive to work around in code.

Designing both sides together lets me make trade-offs where they're cheapest:

  • Move a function into hardware when timing is critical.
  • Move it into firmware when flexibility matters more than speed.
  • Add the test points and diagnostics that make production testing painless.

It shows up in the details

This is the mindset behind everything I publish here: schematics that respect the firmware, and firmware that respects the silicon. The result is products that reach series production with fewer surprises.