Software engineer and technical lead. Over two decades building things, fixing things, and making teams better along the way. I like hard problems, messy codebases, and people who actually care about what they're doing.
I started at British Airways, where I went from junior developer to Technical Design Lead on a platform doing £20m+ a week. Most recently I've been delivering safety-critical systems for the NHS.
I'm at my best when things are complicated. Legacy system that nobody wants to touch? Deployment pipeline that takes an hour? Team that's lost its confidence? Those are the problems I like solving. I've cut CI/CD runtimes by 95%, untangled decade-old data corruption, and built teams that actually enjoy shipping code.
I write Elm and Haskell for fun, I believe strongly in functional programming, and I think the best technical leaders are the ones who make everyone around them better, not just louder.
The day job keeps me busy, but some ideas won't leave you alone until you make them.
A real-time retrospective tool for agile teams. No accounts needed for participants, just share a code. Built because every retro tool I've used has at least one thing that drives me mad.
Planning poker that surfaces the conversation, not the number. The reveal shows who disagreed instead of what anyone voted. Built because nobody should have to hear "this doesn't feel like a 5 to me" again.
A visual editor for building classic text adventure games in the browser. After working on two separate text-adventure games, I decided to build a tool for creating them instead of making a whole new engine each time.
A survival-horror text adventure. Your helicopter went down in the mountains, and an abandoned mansion was the only shelter for miles. Herbs to combine, rooms to explore, things that want to kill you.
Virtual Hospitals, Cervical Screening, Breast Screening. Safety-critical systems across all three. Cut automated test runtime by 92%, cut CI/CD pipelines by 95%, diagnosed historical data corruption across cross-border transfers, and built Python ETL pipelines bridging modern AWS architecture with legacy NHS systems. SC Cleared.
Led the platform rebuild for a global behavioural science company during rapid scaling. Migrated to Node.js, GraphQL, and React, delivered two major new products while keeping legacy systems running, and mentored a distributed engineering team.
Modernised a legacy Java codebase into a cloud-based application. Led a team that delivered a progressive web app for offline travel itineraries in a single week. Introduced automated testing and functional programming patterns.
Led development of a system replacing manual Winter Fuels payment processes, handling millions of transactions. Introduced Docker and TDD practices to the team.
Led the move away from legacy Python/Java systems to Node.js, Docker, and Kubernetes. Built the Node.js backend for the new platform, with a focus on keeping things modular and easy to reason about.
Seven years, from junior to leading the technical design across five development teams and 70+ developers. Delivered the responsive mobile booking system for BA.com, a platform handling £20m+ in weekly sales. Convinced stakeholders to adopt mobile-first, before it was fashionable.
Whether it's work, a weird side project idea, or you just want to talk about text adventures.
When I'm not writing code, I photograph little plastic turtles. Seriously.