Starting with the user and ending with the user. Leveraging AI, obviously, but keeping core engineering principles front and centre.






Fundamentally I needed an app where I could subject family and friends to photos of my bird bath. Along with the rest of the world I appreciate that social networking applications were never actually about bringing people closer together. I wanted to create an app which allowed you to see what your family and friends were up to without feeling worse about your life, without feeling obligated to buy something new and most importantly in a world of To Do lists - provided no pressure to reply/react.
You can only share photos with people in your contacts, no concept of "following" here. You choose who you share every moment with explicitly. Someone else comments on a photo you shared - only you can see it. Consume yours and others moments in a feed so there's no "unread message" waiting for you to reply.
Expo / React Native client with Mapbox. TypeScript Lambdas behind API Gateway, HTTP and WebSocket. Postgres 15 + PostGIS on RDS via Kysely, S3 and CloudFront for media, SQS fan-out-on-write for feeds, SMS OTP. Every resource in Terraform.
Available on iOS and Android - download from the store
Weather changes, often and continuously. For professional sailors being up to date with the newest information quickly and clearly is imperative. How do you communicate to the rest of the crew nav changes when they happen mid race? How do we brief the team the night before with the routing plan? How do we share updates during an offshore race with no internet connectivity?
Optimal allows users to choose what weather data they want to plot and then view it side by side with the mapped route and a Windy weather embed. Sailors can see what's happening in real time and what's coming up next. Pre race analysis informs sail usages decisions. The offline app, hosted on one device can be shared across the boat network to any other device via QR code or url. Optimal is responsive to its core - built for 32 inch monitors and iPhones alike.
Same codebase ships two ways: a hosted app, and one signed, notarised double-clickable binary per platform that bundles Python, the built front end and its own database. Offshore users keep their routes across upgrades because the schema self-heals on launch. Used on Fastnet, Round Britain & Ireland and Myth of Malham.
Check out www.optimalroutings.com.
Early investor, attended the first factory visit in Rome, part time Shopify website builder, never ending website WCAG advocate.
Check out www.mypearlco.com.
typescript
react · react native
expo · node
python
postgres · postgis
llm pipelines & evals
aws lambda · rds · s3
terraform
route53 · cloudfront
London · GMT+1 · taking work from October 2026