Built, scaled, monetised and lost
Before delivery management took over, I built an affiliate marketplace network: a master site with several million products and around two hundred specialist subsites beneath it, on Magento, fed from Affiliate Window, Tradedoubler and Amazon.
It worked. I got the subsites ranking in Google Shopping alongside national retailers and took a serious share of their traffic, so I built more of them. As revenue came in it went back into dedicated servers, Apache tuning and PHP upgrades, because the crawler load alone was hammering them.
Then Google changed the algorithm and it fell over overnight.
I include it because it’s the only thing here I built, scaled, monetised and lost entirely on my own, and because the ending taught me most about how much of a business can rest on a dependency you don’t control.
A single source of truth for a high-value dispute
In 2025–26 I built a case-management system to support the solicitors and barristers preparing a multi-year construction dispute. Hundreds of PDFs running to 30, 50 and more pages each, professional reports, thousands of emails in threads that ran for pages, audio recordings and other records, all on different and unconnected reference systems.
The objective was a single view that could tell you, for any one of hundreds of issues, what it was, when it was first reported, by whom, through what channel, to which party, what happened next, and where it stood, robust enough to hold up in a formal legal process. It now brings around 1,800 records from five independent sources into one view, each cited back to its source, with duplicates merged and contradictions surfaced, and the legal team work from it as the single source of truth.
I prototyped it in general-purpose AI tools, which proved the approach and then hit its limits: inconsistent output, no persistent context between sessions, and more manual verification than the time saved was worth. I rebuilt it properly, breaking the work into discrete orchestrated tasks with sub-agents checking against defined criteria rather than processing everything in one pass.
Structuring model work turned out to be the same discipline as structuring sprint work: break it down, define what “done” means for each piece, verify against it, and break it down further where it still fails. See a working demo on a fictional case