ONLINE · OPEN FOR FREELANCE BUILDS// BUILDING IN PUBLIC
$ whoami → captain-random

I BUILDRANDOMTHINGS

YEARS WEB DEV
20+yrs
YEARS IN RETAIL
23yrs
POSTS PUBLISHED
249articles
RECENT COMMITS
255/30d

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.

Live hub

On air & up next

Tue 27 Oct · 07:45 UK
Times in UK
This week live
Mon26GamingToxic Takeover00:30–01:30
Tue27GamingApex Legends18:00–20:00
Wed28GamingApex Legends18:00–20:00
Thu29GamingApex Legends18:00–20:00
Fri30TBCTo be confirmed—
Sat31TBCTo be confirmed—
Sun1TBCTo be confirmed—

Recent writing.

Essays, notes & build logs
TestingPython
#01
2026-09-256 min read

post_today opens two connections. The test fixture only controlled one.

Three tests in test_post.py broke when auto_mode was turned back on in production. No code had regressed. post_today also opens its own connection to read the auto_mode flag, independent of the connection the fixture supplies, and the test hadn't controlled it.

Read post→
Build LogGodot
#02
2026-09-216 min read

The proxy proved it; Meshy delivered it — Mixamo was never in the chain

The plan called for Mixamo at step three of five. Instead: Meshy API, Blender retarget, Godot import — two tools, one afternoon, no Mixamo. The proxy rig was why the swap cost nothing.

Read post→
ObservabilitySEO
#03
2026-08-235 min read

ga-telemetry shipped the same morning as the Phase 1.6 sitemap push — they're the same job

Two pull requests landed on 2026-06-20: a stdlib-only GA skill and an operator-side sitemap push. One queried Google Analytics. The other filed Request-Indexing nudges. Underneath both was the same question — did Google see this? That's one discipline, not two.

Read post→
Build LogUKCalculators
#04
2026-08-235 min read

`mortgage-abandoned-about-above`: Title-Mangling, Claim Blocks, and the Corrective Pass That Held Fourteen Pillars Together

The Day 2 cron draft came with an unusable slug and three claim blocks that would have shipped unverified. Both got caught and corrected. That pattern — not just the gate, but the corrective pass — is what held a fourteen-pillar streak together.

Read post→
Build LogContent Pipeline
#05
2026-08-235 min read

The pipeline ran every day in July. Every published article started as a rescue.

Five publish events across July. Every one required a human to notice the cron had failed and pull a piece through by hand. The one exception — a two-day autonomous streak on 16–17 July — proved the pipeline can work. The rescue rate is the metric no one was tracking.

Read post→
Build LogContent Pipeline
#06
2026-08-235 min read

Zombie draft, dead zone, zero-draft cron: three failure modes from one misread index

Ten cron cycles between 30 June and 13 July produced exactly one ready draft while the skip counter climbed from 2 to 7. Three distinct failure modes were active simultaneously—a zombie IHT draft reaching its third PR, a dead-zone mortgage cluster that never re-drafted, and zero-draft mornings with clean exit codes. The root cause was identical in each case: draft.py could not tell failure from success.

Read post→
AdSenseSEO
#07
2026-08-225 min read

AdSense re-review submitted: the last fix was deleting content, not adding it

AdSense rejected the UK Calculators site for low-value content on 10 July. The fix over fourteen days was real hub listings, six verified SVG diagrams, and a quality sweep that removed fabricated trust signals — not more pages. Most remediation write-ups budget for additions; this one ends with a deletion sprint.

Read post→
DevOpsBuild Log
#08
2026-08-225 min read

The GSC and GA crons failed silently for two weeks. That's a telemetry blindspot, not a cron problem.

The nightly GSC and GA telemetry crons for UK Calculators had been dying every night since 20 June. On 4 July a Saturday morning review found the gap — fourteen days of dark data, no alerts, clean-looking logs. The fix took an afternoon. The monitoring lesson took longer.

Read post→
Build LogDesign
#09
2026-08-215 min read

Branded card names rot. /work's don't any more.

Two corrections arrived within the same hour: one product had rebranded six months earlier, one client project couldn't be named publicly. Both pointed at the same design gap. Closing it required a policy, not a patch.

Read post→

Build log.
In your inbox.

What shipped, what broke, what worked. No marketing. No sponsorships. Sent when there's something worth sending.

Plain-text only. Unsubscribe in one click. We store your email, the date you confirmed, and a one-way hash of your IP (for abuse triage). Nothing else. Privacy policy.