I BUILDRANDOMTHINGSon purpose,
in public.
Hi — I'm Captain Random. I build production software, weird little experiments, and document all of it honestly. This site is the public part: real projects, real workflows, real evaluations of the tools I use.
What I build,
and why I'm still
excited about it.
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 inside UK enterprise retail and hospitality. Real workflows, real failure points, real software-meets-floor knowledge.
02AI TOOL EVALS
Honest, practical assessments of Claude Code, Archon, and whatever else I'm shipping with. Includes what didn't work.
03CREATIVE AI
Music (Suno workflow), generative art, video. A hobby that produces real output, documented as it goes.
04BUILD IN PUBLIC
Projects from idea to implementation. The process is the point — failures included.
05LEARNING LOG
What I'm currently studying, how far through it I am, and whether it was worth the time.
06Recent writing.
No Composer, no autoloader: the newsletter backend cPanel rewarded
The deployment target was a cPanel shared host with FTP access. Composer wants SSH or a committed vendor directory. Neither fits cleanly on shared hosting. The alternative was require_once, six PHP classes, and a 190-line schema that doubles as documentation. Six sprints in, the backend is completely understood.
One osascript harness, two consumers — how skipping Archon kept the dvlaw stack composable
After the variant-picker shipped, the next call was architectural. Route thesis generation through Archon, or build a project-owned harness and own the primitive. The harness won. What emerged was a two-consumer pattern — thesis generation and voice rewriting off the same base — that Archon would have made awkward.
Scheduling articles through Telegram taught me that cron is the wrong model
The DVLAW pipeline could draft and voice-fix articles but had no scheduling layer. Adding one took six sprints, not because the cron was hard but because scheduling through Telegram needs to capture intent, not timestamps. The grammar parser, the 2×2 keyboard, and the 48-hour grace policy are the same design decision expressed three different ways.
Workshop.
Build log.
In your inbox.
New posts, project updates, and honest tool reviews — roughly every two weeks. No marketing. No sponsorships. Just what I actually built and learned.


