I'm a senior software engineer based in Wiltshire, England. Since 2014 I've built and run the ecommerce platform and cloud infrastructure at Gompels, a specialist care and education wholesale supplier, where I lead a small development team and look after everything from the AWS estate to the pull request queue.

These days much of my time goes on AI engineering: internal microservices that use LLM APIs to read orders out of emails, score sales leads against public registries, and document our systems for both people and machines. I also led our adoption of AI-assisted development, along with the standards that keep it honest.

I started out in 1996 as an apprentice mechatronic engineer, but the web pulled early: my first paid web work came in 1999, building a PHP and MySQL site for a local transport industry advertiser, and by 2004 I was Knorr-Bremse's domain and web administrator. From 2006 to 2013 I also ran eCrayon, my own small web design business, alongside the day jobs. The web became my full-time trade in 2007, which means I've written production code against everything from FrontPage-era HTML to the Anthropic API. Some of that history is below; the rest is on LinkedIn.

Tools of the trade

Languages. PHP, SQL (MySQL and MSSQL), JavaScript, Node.js, Python.

Cloud & infrastructure. AWS (RDS/Aurora, ECS, OpenSearch, DMS), Docker, Linux.

Architecture. Microservices, event-driven messaging over RabbitMQ, REST APIs, MCP servers.

DevOps. Self-hosted GitLab, CI/CD pipelines, pytest, CloudWatch, Grafana.

AI engineering. Anthropic API, Claude Code, vector search with pgvector.

Compliance. PCI DSS, GDPR.

Selected work

The Gompels platform

A B2B and B2C ecommerce store that I rebuilt from the ground up and have grown with the business for over a decade, trading around the clock. It runs on PHP 8.4 with a bespoke MVC framework built on Symfony components, MySQL, OpenSearch and Valkey. The frontend is deliberately vanilla JavaScript: frameworks have to earn their keep here, and so far none have.

The platform lives on AWS, and in 2025 I moved the whole estate from the Ireland region to London with around six hours of database downtime. Performance work never really stops; keeping queries, PHP overhead and hardware sizing in balance is what keeps both customers and the hosting bill happy.

Order Automator

Plenty of our customers still email their orders in, sometimes inline, sometimes as an attachment in whatever format their own purchasing system produces. This service watches the inbox, uses the Anthropic API to extract what's actually being ordered, then matches customers, delivery addresses, stock and pricing before placing the order through the ecommerce platform automatically. A human stays in the loop for the cases that deserve one.

Lead Generator

A consumer on our RabbitMQ message backbone that listens to live order traffic and scores it against past orders and public registries such as Ofsted, CQC and GIAS. The result is a steady feed of new or under-served customer groups for the sales team, generated from data we already had flowing past.

Service Catalogue

A developer resource that documents every internal and external API endpoint we have, along with our MSSQL stored procedures. It doubles as an MCP server, which means the same documentation that helps the team also gives our AI tooling an accurate map of the systems it's working with. Documentation that machines consume tends to stay honest.

Earlier work

Before Gompels I spent seven years at a specialist publisher, where I built a CMS that powered more than twenty websites, a web-socket-driven flat plan tool for laying out publications collaboratively in real time, and an EPoS system: touchscreen tills speaking HTTPS to a central web application, with an offline mode that queued transactions until a connection returned, which let the same tills work a 3G connection at outdoor shows.

Career