Posts
All the articles I've posted.
Be My Eyes
One of my favourite apps. It connects sighted volunteers with blind and low-vision people over a video call, so you can lend a hand whenever you're free.
Death Stranding
A belated playthrough of Kojima's walking game. A wild story, an elegant network-building system, and some of the best musical moments I've had in a game.
Prague, Brno, and Vienna
A ten-day trip through central Europe, starting in Prague for Charles Bridge and its mystique, a surprise brief stop in Brno, and continuing to Vienna for its museums, Klimt's Kiss, and far more good food than planned.
100km
Around North London. A loop from Archway through parks, fields, and forests. 109.3km in the end — the round number mattered.
Brighton to Hastings on Foot
Three days walking the East Sussex coast, from Brighton Pier to the Old Town of Hastings.
Accessibility in React Native: Beyond the Checklist
Practical approaches to building accessible React Native apps — from screen readers and font scaling to testing tools like Accessibility Inspector, VoiceOver, and BrowserStack.
Asset Format Strategy for React Native Apps
A practical guide to choosing between WebP, SVG, Lottie, and compressed MP4 in React Native with Expo — when to use each, how to convert, and how to organise your assets.
Storybook in Expo Router Without Replacing Your App
How to integrate on-device Storybook as an Expo Router route with three layers of production exclusion and zero bundle size impact.
Offline-First Mutations in React Native with Apollo Client
How to build a persistent offline mutation queue for React Native apps using Apollo Client, AsyncStorage, and a custom hook that survives app restarts.
The Right Tool for the Job: Replacing XState with Zustand
How we reduced state management code by 80% by recognising that a finite state machine was the wrong abstraction for what was fundamentally simple CRUD state.