Writing on technology, design, VR, AI — and what it takes to ship them. Mostly long, sometimes short, occasionally wrong.
What broke, what we saved, what we'd do again. Three honest migration walkthroughs with hours and invoices attached.
Self-hosted, open-source, headless. The things that bit us in production and the patterns that earn their keep.
Hourly billing rewards slow people. Per-project billing rewards over-promising. Two-week sprints reward the only thing that matters: shipping something.
A VR app for a clinic isn't designed for the engineer who built it. It's designed for the 84-year-old patient who's never held a controller. Here's what changes.
No GA. No Plausible. No fingerprinting. The site you're reading sends one anonymous beacon per session — and we still know everything we actually need.
Most VR teams ship when the team thinks it's good. A Class I medical device ships when a regulator says so. Here's the gap, and what it cost us to close it.
Photogrammetry got cheaper. Gaussian splats got everywhere. We kept reaching for the same Pro2 we've used since 2019 — here's the unromantic reason.
The brand colour is the same on a phone in São Paulo and a press kit in Stuttgart only if you build a colour pipeline that survives Algarve sunset, Lisbon overcast and studio strobes. Here's the one we use.