4.0Project index6 entries · rev 2026.08

Six years of products where firmware was the thing that had to work.

Each entry lists the system, what I owned on it, and where it got to. Ownership is stated as scope, not as a job title — the titles are on the timeline.

Ref
Product
System shape
I owned
Reached
More
P-01
Smart bed — posture correction
Water™ Robotics · 10,756 pressure points read live, 46 actuators correcting posture
STM32H757 ×5
+ Raspberry Pi
Sole firmware engineer — all five boards, bootloader, host pipeline, OTA
CES 2026
shipping
P-02
Smart chair — posture correction
Water™ Robotics · 12 degrees of freedom from two motors, inference on the control MCU
STM32H723 + ESP32
(iter. 1: H757)
Sole firmware engineer — architecture, actuation, on-device inference
In development
iteration 2
P-03
Automated cooking robot
Futuristic Labs · autonomous multi-subsystem cooking, 30+ engineer programme
STM32L476
+ Raspberry Pi
One of two senior embedded leads — host recipe engine, dispensing subsystems
Unattended
user testing
P-04
Smart induction cooktop
Futuristic Labs · app-guided cooking with adaptive heating, 500+ units in the field
ESP32-WROOM-32D
FreeRTOS · LVGL
Internal technical lead — control algorithms, connectivity, OTA, production test tool
Production
500+ units
P-05
Automated chai maker
Futuristic Labs for Chaayos · consistent taste means consistent liquid dispensing, 60+ cafés
STM32L476 + Pi
ATtiny402 sensor
Liquid dispensing owner — precision pump control and a custom priming sensor built from scratch
Deployed
60+ cafés
P-06
Mobile robot platforms
Codelattice Labs · 2WD and 4WD platforms that had to stop exactly where they were told
Differential drive
PID control
Motion control and kinematics — closed-loop positioning
MVP
4.2System dossiers — decision recordWhat was rejected, and why

Four systems, recorded for the decisions rather than the numbers. The part that transfers to your product is what I turned down.

DOSSIER A · STM32L476 + RASPBERRY PI

Automated cooking robot — one engine, thousands of recipes

One of two senior
embedded leads
orchestratorpub / sub busdispenseinductionstirringrice“execute step n” — broadcast once
Fig. A1 — each manager decides whether the step is its own
Chose
Over — and why
One universal execution engine
Over per-recipe logic — thousands of dishes, but only one execution path anyone has to verify.
Request/response built on an async bus
Over fire-and-forget commands — a cooking step has to know its command landed before it moves on.
Recipes pre-compiled before the cook starts
Over parsing at runtime — no text parsing on the hot path while an induction coil is live.
DOSSIER B · ONE IMAGE, SIX VARIANTS

Board personality — a second product line without a second codebase

Architecture
+ subsystems
one binarypersonalityrobot · baserobot · x2 / x3 / x4robot · rikuchai makernext platform
Fig. B1 — the B2B chai maker shipped as recipe data, not a fork
Chose
Over — and why
Runtime personality selection
Over a branch per product — a fork means every fix lands twice, and eventually only lands once.
Driver interfaces behind function pointers
Over compile-time switches — two electrically incompatible induction boards, one binary, chosen at runtime.
Differentiate by data, not by code
Over a product-specific host stack — the client’s machine reused the same orchestration layer wholesale.
DOSSIER C · 5 BOARDS, 1 BOOTLOADER

Secure OTA for a product that lives in someone’s bedroom

Sole owner
boot + update
host stagesigned +encryptedspine 1spine 2spine 3spine 4brainA/Bslots
Fig. C1 — staged in groups so no board overwrites the slot it is running
Chose
Over — and why
A/B slots with a guarded boot record
Over updating in place — a failed write in a customer’s home must fall back, not brick.
One bootloader for all five boards
Over per-board boot code — one small, auditable path instead of five that drift apart.
Signed and encrypted images
Over a plain image with a checksum — the update channel is the attack surface on a connected product.
DOSSIER D · STM32H723 + ESP32

Smart chair — 12 degrees of freedom from two motors

Sole firmware owner
in development
pressure matrixencoders · IMUH723 · inference2 motors · 12 DOFESP32 · cloud/app
Fig. D1 — inference sits on the control MCU; connectivity is offboard
Chose
Over — and why
Two motors through a custom gearbox
Over an actuator per axis — twelve axes of movement without twelve motors of cost, weight and wiring.
Inference on the control MCU
Over a cloud round-trip — posture correction cannot wait on a network it does not control.
A separate radio module
Over Wi-Fi on the control MCU — connectivity work never gets to interrupt the real-time loop.
4.3Also on the record
Production tooling

A test tool that walks assembly staff through each step in plain language, decides pass or fail from live device data, and writes serial numbers and calibration constants in the same pass. Adopted as the standard tool for a full manufacturing run.

Reusable IP

A capacitive liquid-priming sensor designed from scratch on a small dedicated MCU — built as internal R&D for future liquid-handling platforms, first shipped in the chai maker.

Team & process

Part-time scrum master for a six-person cross-functional team; mentored three junior engineers on a live product and introduced a review gate so nothing reached production unreviewed.

Earlier

Railway track fault detection using ultrasonic flaw detection — final-year project that became a grant-funded startup initiative, and a national quarter-finalist in a design contest.

Read P-01 in full →Book a call