About
I built a booking and payments system in 2016. I am still working on the same problem.
In 2016 a chiropractic clinic in Bristol needed a way to take appointments and payments. I built it — scheduling logic, card processing, the reports the practice actually ran on — and then kept it alive for four years while the practice grew into it.
A decade later I am building the same thing again: booking, payments, payouts that cross a border, and live video on top. The difference is two orders of magnitude in every direction — the failure modes, the money at risk, the number of ways a schedule can be wrong. That is roughly the shape of my career: the same class of problem, at increasing stakes.
The decade before
Most of it was agency backend work on e-commerce, which is an unglamorous place to learn the things that matter. High-traffic stores processing real transactions and real customer data, including work on Dyson’s platform. The systems were not novel. They wereconsequential — an outage was lost orders, a bad migration was a support queue, and a mishandled payment was somebody’s actual money.
That is where I picked up the instincts I still work from: that reliability is a feature, that data about people deserves care beyond what compliance requires, and that most production incidents are failures of imagination rather than of skill.
Now
I am technical co-founder of an early-stage transit company, and I build a small family of independent products alongside it. In practice that means I do all of it: schema design, API, mobile, infrastructure as code, CI, monitoring, and the on-call rotation of one.
Working alone taught me things a team would have hidden — mostly that every shortcut is a loan against your own future attention. But it is not a preference. The decade before this was collaborative, and the thing I miss most is code review by someone who disagrees with me.
Where I am
Bristol, UK. Open to remote work across UK and European time zones, and to relocating for the right team.
Experience
May 2026 — present
Technical co-founder · Undisclosed — early-stage transit startup
Technical co-founder of a company building live information for public transit riders. I own the mobile app, the operations console and the data backend that turns anonymous signals into positions riders can act on.
- Designed a privacy-first architecture: no accounts, no personal data, nothing that identifies a rider.
- Set the integrity rule the product is built around — the system never invents a position, and says plainly when it does not know.
- Operate the whole stack: a React Native app, a Next.js console, Postgres, and a containerised detector service.
- React Native
- Next.js
- Postgres
- Fly.io
- GitHub Actions
2020 — present
Founder and engineer · Independent
Designing and running small products end to end — architecture, code, infrastructure and the on-call pager. AgendaProfe is the largest and the one carrying real money.
- AgendaProfe — scheduling, payments and live video teaching for independent teachers. In production.
- PressPlay — an audio-only AI workout coach, where the cost of generated speech drove the architecture.
- groundtruth — a small open-source CLI that checks agent-context files against the repository they describe.
- TypeScript
- Next.js
- Postgres
- Stripe
- Terraform
- React Native
Jul 2017 — Mar 2020
Backend engineer · G&V Venture Brands
Backend engineer at a venture-brand agency, building and maintaining high-traffic e-commerce platforms — including work on Dyson’s store.
- Built custom backend modules for stores processing transactions and customer data at scale.
- Diagnosed and fixed production issues on systems where an outage meant lost orders, not a failed build.
- Worked directly with in-house and client engineering teams against fixed launch dates.
- PHP
- Magento
- MySQL
- Redis
Aug 2016 — Mar 2020 · alongside agency work
Backend engineer — contract · Thrive Chiropractic
Designed and built a booking-and-payment platform from scratch, and kept it running for four years. The same problem I would return to a decade later, at a different scale.
- Architected real-time scheduling logic and secure payment processing.
- Built the reporting the practice actually used to make operational decisions.
- Automated the manual workflows that broke first as the system grew.
- PHP
- Laravel
- MySQL
Jul 2014 — Aug 2016
Backend engineer · Folk Digital
Backend engineer on complex e-commerce systems for performance-sensitive clients.
- Implemented backend features and third-party integrations across client stores.
- Worked with design, frontend and operations to get releases out reliably.
- PHP
- Magento
- MySQL
Jul 2012 — Jul 2014
Backend engineer · C3 Media
Started as a junior PHP developer and progressed to independently building and maintaining full e-commerce systems. Where the rest of it started.
- Custom modules, store features, platform upgrades and API integrations.
- First exposure to the thing that has shaped everything since: production systems holding other people’s money.
- PHP
- Magento
- MySQL