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.

  1. 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

  2. 02

    Marketing Platform

    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

  3. 03

    IT Platform Monitor

    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.

Contact

Email is the fastest way to reach me.