I BUILDRANDOMTHINGSon purpose,
in public.
Hey — this is Captain Random. I build production software and experiment with how far I can push my imagination into the digital realm, bridging the gap between technology and the problems worth solving. This site is for everyone — here you can see real projects, real workflows, and honest evaluations of the tools I use and build. It's a new project, and it'll grow with every commit. Stick around and watch it take shape.
What's new
What I build,
and what gets solved
when I do.
AGENTIC AI & ARCHITECTURE
Building when code generation is free. How I architect agentic-first systems, what works in practice, what doesn't.
01RETAIL & HOSPITALITY OPS
23 years in operations and leadership across UK retail and hospitality. Real workflows, real failure points, real software-meets-floor knowledge.
02AI TOOL EVALS
Honest, practical assessments of the tools I'm experimenting and shipping with. Includes what didn't work.
03CREATIVE AI
AI music workflows, generative art, and video — for work and for play. Real output, shared as it's made.
04BUILD IN PUBLIC
Projects from idea to implementation. The process is the point — failures included. Shared live, in public.
05LEARNING LOG
What I'm currently studying and learning, and whether it was worth the time.
06Recent writing.
Eight clusters triaged, zero published: why autonomous content cadence fails silently
The UK Calculators content pipeline ran three clean cron exits and published nothing for three weekdays. No errors, no alerts, just absence. Three weeks of daily runs showed the failure mode is not bad drafts. It is a gate that rejects everything differently each day, and a cadence monitor that asks the wrong question.
The cron kept drafting mortgage because gov.uk wasn't in the source set yet
For five days, the cron produced news-cluster drafts and operators shipped gov.uk regulatory pillars by hand. Day 6 changed one thing: gov.uk Search API sources entered the polling loop. Two data-pegged pillars from a single cycle followed immediately.
The in-chapter TOC needed live JavaScript. It still got a mockup first.
The captainrandom learning hub navigation retrofit ran five phases. Every one went through the UI gate — interactive approval mockup before production code. The most interesting case was P4: the subsystem's only client-side component, with a live IntersectionObserver scroll-spy in its mockup, still approved before a line of React was written.
The privacy work isn't on the /privacy/ page
The /privacy/ page went live in June and covers what it covers. The actual privacy work on this site happened in a data-locality choice, a brand-separation rule, and a username leak in published MDX. Only one of the three announced itself.
10 of 13 sentences made it. The verifier caught the rest before they reached a pillar page.
The June 30th cron produced a mortgage rate-spike draft grounded in April 2026 data. Ten of thirteen sentences passed. The three that didn't never reached a pillar page — and the next two days showed why that distinction matters at publishing scale.
14 days of daily publishing: the three failure modes I hadn't designed for
A 14-day publish cadence on UK Calculators surfaced three failure modes: title-mangling produces permanent ugly slugs, zero-draft mornings expose the absence of a fallback queue, and triage without memory republishes the same cluster it shipped the day before.
AdSense low-value rejection: thin pages, empty hubs, and six SVG diagrams
UK Calculators was rejected for low-value content on 10 July — ads.txt was authorised, so this was purely a content-quality judgement. Three concrete moves addressed the specific inventory-value criteria: expanding thin calculator landings, adding SVG diagrams across the pillar estate, and populating empty hub pages the rejection identified.
The E2E suite billed 1,130 minutes to test a page that never existed
A Playwright suite on a private repo ran 69 times in three weeks, failed 61 of them, and billed roughly a thousand minutes doing it. The root cause was three mistakes stacked on top of each other, and the deepest one was mine: I did not know GitHub Actions had a bill.
The backlog called it a content gap. It was navigation.
Completing an eight-chapter course on the learning hub felt like progress. Then I looked at what had actually moved the needle — track sections, prerequisite chips, and a JSON-LD breadcrumb. The backlog had been mis-filing the bottleneck for months.
Workshop.
Build log.
In your inbox.
What shipped, what broke, what worked. No marketing. No sponsorships. Sent when there's something worth sending.







