Hardware & Embedded
Prototypes are fragile almost by definition. My job is turning them into hardware a team can trust once it leaves the demo table.
Embedded work retrained a lot of my software instincts. A bug in a web app is reproducible. A bug caused by a loose solder joint that only shows up above 30°C is a different kind of problem — it's as much about figuring out what's actually true in the physical world as it is about logic.
The habit I lean on most from this side of the work is budgeting for reality: every sensor read and every I2C transaction has a real latency that software intuition wants to treat as zero, and every connector degrades in ways a codebase never has to worry about. I design with that margin built in from the start rather than discovering it in the field.
State machines are the throughline between this and everything else I build — firmware is basically state machines all the way down, and that mental model transfers cleanly from game AI and UI flow logic. What doesn't transfer is the assumption that logging is free; on a tight interrupt loop, even a `Serial.println` can change your timing enough to hide the bug you're chasing.
Languages
Boards
Protocols
Process
Software Engineering Lead · Jowi AR
Jan 2022 — Jun 2023