About
I build production systems for small and mid sized businesses. The kind
that need to run quietly in the background, day and night, without anyone
watching them.
I have spent the past twelve years at the Ministry of Sound group, a
portfolio of music, events and hospitality brands, owning the full IT
and operations stack. Everything below was built there. Small scopes,
fast iterations, things that run unattended once they are live. Plain
stack, careful seams, artefacts you can point at.
Best fit if you are twenty to two hundred people, run on Microsoft 365 or
a similar stack, and need one system built right rather than a team of
contractors. I take a small number of these alongside my role at Ministry.
Selected Work
Three to start with. Five more below, in brief. All running day to day
across the Ministry of Sound group, built and owned end to end.
-
01
Marketing Attribution
2025 to 2026 - Problem
- A music venue was reporting GBP 128k of revenue from its Meta, Google and TikTok ads, when the actual figure was GBP 2.36M. The ticketing system sat between the ad click and the purchase, so the ad platforms could only see a small fraction of the sales they had really driven.
- Approach
- A small piece of software takes each real sale, removes anything personal, and reports it back to each ad platform in the format they expect. Quiet, automatic, fully under the venue's control.
- Outcome
- The reporting gap closed almost entirely. The venue can now see which ads are actually paying back, and shift spend towards them. The ad platforms in turn started showing the ads to the kind of people who buy.
Stack Python, Meta CAPI, Google Ads API, TikTok Events, Klaviyo, Azure Functions
-
02 2026
- Problem
- Four marketing channels (Google, Meta, TikTok and Google Analytics) across four trading brands. To answer one question the marketing team had to open four logins. The setup running quietly behind the scenes was costing the business about GBP 200 a month, even when no one was using it.
- Approach
- All four channels feed into one place that refreshes itself every morning. Sat on top is a plain English question box. Type "Which ads made the most money last week" and the answer comes back in seconds.
- Outcome
- The team work from one screen instead of four. The bill dropped from about GBP 200 a month to about GBP 30, because the system only switches on when someone actually asks a question.
Stack Python, Azure SQL serverless, dlt, Claude API, Flask, Chart.js
-
03 2023 to 2026
- Problem
- Five separate tools to check whether anything in the business was broken. The operations team were opening each one every morning and crossing their fingers that nothing had slipped through overnight.
- Approach
- One dashboard pulling from every system that matters. Websites, network kit, file storage, Microsoft 365, and a credit risk score on suppliers. Live status, history, and an alert the moment something needs attention.
- Outcome
- One screen the operations team checks first thing every day. In the first month it caught a website security certificate about to expire, a failing drive on the file server, and a forgotten Microsoft 365 licence quietly costing the business every month.
Stack Python, Flask, FortiGate API, M365 Graph, Cloudflare Tunnel, SQLite
Also built
- 2026
Contract Register
Every supplier contract is forwarded to a shared mailbox. The system reads it, pulls out the value, dates and key terms, files it in SharePoint, and warns the team before any renewal comes up.
Python, M365 Graph, Claude API, SharePoint Lists, Azure Functions
- 2026
The Arches Analytics
Brought six systems a venue depends on (tills, loyalty cards, coworking memberships, event bookings, door access and email) into one place. Leaders can finally see footfall, spend and bookings together.
Azure SQL, Python, dlt
- 2026
Media Catalogue
Catalogued 15TB of photos and video clips so the team can search the archive by what is in the picture, not just by filename. Ran on a single workstation in the office for about GBP 46 in electricity, against an estimate of about GBP 5,840 for the same work in the cloud.
Qwen2 VL, FFmpeg, MongoDB, Qdrant, Celery
- 2026
Daily Brief
Each morning at 08:00 the system reads my inbox, ranks the messages by urgency, and sends the top ones as a single card in Teams. Cut morning email triage from twenty minutes to three.
Python, M365 Graph cert auth, Claude API, Power Automate
How I work
Small scope, fixed price where possible. I prefer one well defined project
at a time over an open ended retainer. Most engagements run two to eight
weeks of build time, sometimes split across calendar months. Projects
typically start from a few thousand pounds.
The code, the data and the documentation all belong to your business
from the start. When the project ends you have everything that was built
and the notes to keep it running. I include thirty days of warranty
after launch for bugs, and you can bring me back hourly for changes
once your team is up and running.
- I do not lead visual or product design. Bring a designer or I will recommend one.
- I do not take on full time placements or interim CTO roles.
- I respond to email within one working day, usually the same morning.