
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 years before
I came to it late, and sideways. I decided I wanted to learn web development; my closest friend at the time was already a developer and gave me the first lesson. I took a part-time cleaning job in a business centre and spent the rest of my time teaching myself, and about six months later one of the companies in that same building hired me as a junior developer. That was 2012, and it was luck as much as anything — which is worth saying, because coming back in 2026 happened by a route just as unplanned.
Most of what followed 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 were consequential — 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.
Then six years off
Both contracts ended in March 2020 — the agency work and the clinic whose booking system I had been running for four years. I did not go looking for more. I could afford not to, and after eight years of agency e-commerce I wanted to find out what else there was. That turned into six years: travelling, living simply, not working.
I am not going to dress that up as a sabbatical with a thesis attached. I stopped because I wanted to and could — and I came back for the same reason.
I mention it because the dates on this page would otherwise imply six years of quiet productivity that did not happen, and because it is the reason the rest of the site looks the way it does. Everything here was built after March 2026.
Now
What brought me back was coding agents — not the novelty, but the discovery that the bottleneck had moved. I build and run AgendaProfe, and I spent the summer as technical co-founder of an early-stage transit company, now parked. 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.
Most of that is delegated to agents, and not only the code. They provision the servers, run the deploys, go into a live system over SSH when something is wrong, drive the service CLIs and tool integrations the stack depends on, and keep the decision records current so the next session starts on policy rather than on instinct. What is left for me is the direction and the gates — which turns out to be the larger job, and the one that does not delegate.
Two production systems in the months since is not a claim about how hard I work. It is a claim about what a reviewed agent pipeline does to throughput, and the case study is the honest version of it, including the part that went wrong.
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 agency years were collaborative, and the thing I miss most is code review by someone who disagrees with me.
Where this is going: from running the practice to understanding it. I am instrumenting my own systems — agent authorship, rework, cycle time, cost per merged change — and publishing the numbers, because the industry is full of claims about AI-native engineering and short of measurements. The questions I care about next are the ones a single operator cannot answer alone: what this does inside real teams, what should stay human at organizational scale, and how you prove a transformation worked to someone who would rather it had not. I am at the start of that, not the end, and the honest way to make progress on it is the way everything here was made — by doing the work and writing down what actually happened.
Where I am
Bristol is home. UK-based and available now. Currently on a temporary working trip abroad, with a daily overlap from about 13:00 UK and flexibility outside it. Back in the UK early in the engagement, and on site from then. Remote-first either way: everything on this site was built and operated that way. British citizen — no visa or sponsorship needed in the UK.
Experience
Mar 2026 — present
Senior full-stack 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. All of it built since coming back to engineering in March 2026.
- AgendaProfe — scheduling, payments and live video teaching for independent teachers. In production.
- groundtruth — a small open-source CLI that checks agent-context files against the repository they describe.
- TypeScript
- Next.js
- Postgres
- Stripe
- Terraform
- React Native
May 2026 — Aug 2026
Technical co-founder · Undisclosed — early-stage transit startup
Technical co-founder of a company building live information for public transit riders. I owned the mobile app, the operations console and the data backend that turns anonymous signals into positions riders can act on. Parked.
- 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.
- Operated 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
Mar 2020 — Mar 2026
Career break · Travelling
Six years away from engineering entirely: travelling, living simply, and not working. Not a period I want to write a lesson about. What ended it was coding agents — I came back in March 2026, and everything since was built after that. Both contracts had ended at the start of the pandemic, and I did not go looking for more.
Jul 2017 — Mar 2020
Backend engineer — contract · 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