Things I built and what they had to survive.
Four projects, in reverse order. Each one includes the constraint that shaped it — usually a device, a deadline, or a dataset that refused to behave.
All projects
4 projectsLedgerline
Reconciliation dashboard for a payments team drowning in spreadsheets.
Replaced a 40-tab spreadsheet workflow with a virtualised table that holds 200k rows at 60fps. The hard part was not the rendering — it was designing a diff view that a finance lead could read without training.
Halftone
A print-inspired CMS for independent magazines.
Editors compose in a canvas that mirrors the printed grid, so nothing shifts between proof and press. Ships a colour-managed export pipeline and an offline-first editor.
Quiet Hours
A focus timer that refuses to gamify anything.
No streaks, no badges, no confetti. Just a session log and a weekly read-out. Built to see how far an interface can get on typography and restraint alone.
Transit Atlas
Live map of a city bus network, built from a messy open feed.
Cleaned an unreliable GTFS feed into something a commuter could trust, then rendered 3,000 moving vehicles on canvas without dropping frames on low-end Android.