Projects

Real systems running today across a four business London group.

Three flagships in depth, then the rest in brief. All built and owned end to end.

01

Marketing Attribution

2025 to 2026 · Ministry of Sound group

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.

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

Built with Python, Meta CAPI, Google Ads API, TikTok Events, Klaviyo, Azure Functions
02

Marketing Platform

2026 · Ministry of Sound group

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.

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

Built with Python, Azure SQL serverless, dlt, Claude API, Flask, Chart.js
03

IT Platform Monitor

2023 to 2026 · Ministry of Sound group

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.

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

Built with 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