<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Random Domain</title><link>https://blog.randomdomain.co.za/</link><description>Recent content on Random Domain</description><generator>Hugo</generator><language>en</language><lastBuildDate>Wed, 20 May 2026 00:00:00 +0200</lastBuildDate><atom:link href="https://blog.randomdomain.co.za/index.xml" rel="self" type="application/rss+xml"/><item><title>The bottleneck moved</title><link>https://blog.randomdomain.co.za/posts/2026/05/the-bottleneck-moved/</link><pubDate>Wed, 20 May 2026 00:00:00 +0200</pubDate><guid>https://blog.randomdomain.co.za/posts/2026/05/the-bottleneck-moved/</guid><description>&lt;p>In December 2024, I published &lt;a href="https://blog.randomdomain.co.za/posts/2024/12/ai-coding-assistants-rise/">a post&lt;/a> arguing that AI coding assistants would transform rather than replace software developers.
It was a reasonable piece.
It was also, in the way that reasonable pieces often are, a little cowardly.&lt;/p></description></item><item><title>Building "Who Should Be President?" in a morning, on Cloudflare</title><link>https://blog.randomdomain.co.za/posts/2026/05/pick-a-president/</link><pubDate>Tue, 19 May 2026 20:00:00 +0200</pubDate><guid>https://blog.randomdomain.co.za/posts/2026/05/pick-a-president/</guid><description>&lt;p>&lt;em>This project was built entirely in Claude Code with the Cloudflare MCP server — not a line of code was written by hand. Given the low stakes — a novelty site about South African politics — the brief was simple: make it fun, make it fast, and see how far you get in a morning. To write this post, I handed Claude the project chat transcripts and asked it to pull out the parts worth explaining. What follows is the result.&lt;/em>&lt;/p></description></item><item><title>Reverse-engineering my router's secret API so an AI could watch it</title><link>https://blog.randomdomain.co.za/posts/2026/05/router-api/</link><pubDate>Sat, 16 May 2026 20:45:05 +0200</pubDate><guid>https://blog.randomdomain.co.za/posts/2026/05/router-api/</guid><description>&lt;p>My home fibre drops. Not constantly — but regularly enough that I&amp;rsquo;ve developed a habit of opening the router admin page when Netflix stalls, just to confirm what I already suspect.&lt;/p>
&lt;p>The TP-Link ER605 I use is a decent small-business router: dual WAN, PPPoE on WAN1 for fibre, DHCP on WAN2 for a mobile backup. When the fibre goes down the router fails over silently. The backup connection works. Everything &lt;em>sort of&lt;/em> continues — browsing is slower, calls drop, but nothing catastrophically fails.&lt;/p>
&lt;p>The problem is I don&amp;rsquo;t &lt;em>know&lt;/em> it happened until much later, and I can&amp;rsquo;t easily tell how long it was down for. The only real evidence is a log line buried in the router&amp;rsquo;s syslog:&lt;/p>
&lt;pre tabindex="0">&lt;code>2 2026-02-23 12:35:14 PPPoE Client WARNING [7C-F1-7E-74-E5-52]: PPPoE &amp;lt;account&amp;gt;@isp.co failed
to connect to the server because sending PADI times out.
&lt;/code>&lt;/pre>&lt;p>I wanted to fix this. I wanted an email the moment the fibre dropped, hourly reminders while it was still down, and a &amp;ldquo;connection restored&amp;rdquo; email with total downtime included. Could I write a script that polled the router?&lt;/p>
&lt;p>This is the story of using Claude Code to figure out how — starting from nothing and ending, 35 minutes later, with working code.&lt;/p></description></item><item><title>Party of One - How the Constitutional Court manufactured a right to be an independent candidate</title><link>https://blog.randomdomain.co.za/posts/2026/05/party-of-one/</link><pubDate>Sat, 16 May 2026 13:34:00 +0200</pubDate><guid>https://blog.randomdomain.co.za/posts/2026/05/party-of-one/</guid><description>&lt;p>In June 2020, the Constitutional Court handed down &lt;em>New Nation Movement NPC and Others v President of the Republic of South Africa and Others&lt;/em> [2020] ZACC 11. The order, in the part everyone quotes, says this:&lt;/p>
&lt;blockquote>
&lt;p>It is declared that the Electoral Act 73 of 1998 is unconstitutional to the extent that it requires that adult citizens may be elected to the National Assembly and Provincial Legislatures only through their membership of political parties.&lt;/p>&lt;/blockquote>
&lt;p>But neither the court, not anyone else, actually read the Electoral Act.&lt;/p></description></item><item><title>Politics in Robes</title><link>https://blog.randomdomain.co.za/posts/2026/05/politics-in-robes/</link><pubDate>Mon, 11 May 2026 18:36:21 +0200</pubDate><guid>https://blog.randomdomain.co.za/posts/2026/05/politics-in-robes/</guid><description>&lt;p>&lt;strong>A Political Critique of Maya CJ’s Judgement in EFF v Speaker (CCT 35/24)&lt;/strong>&lt;/p>
&lt;p>The first judgment in &lt;em>Economic Freedom Fighters and Another v Speaker of the National Assembly and Others&lt;/em> [2026] ZACC 17 is being read, in the public conversation, as a vindication of constitutional accountability against a recalcitrant parliamentary majority. That reading is comfortable, and it is wrong. It is comfortable because it tracks an emotionally satisfying narrative: a powerful President accused of corruption, a governing party closing ranks, and a Chief Justice who refuses to let the matter rest. It is wrong because it mistakes the form of Maya CJ’s judgment for its substance. The substance, prised free of its rhetorical packaging, is a piece of constitutional politics. The first judgment delivers, by judicial means, a censure of President Ramaphosa that the National Assembly declined to deliver politically. It is not the role of the Constitutional Court to be the appeals branch of a defeated opposition motion. Maya CJ’s judgment treats the Court as though it were.&lt;/p></description></item><item><title>The limit is your validation criteria, not the agent</title><link>https://blog.randomdomain.co.za/posts/2025/12/agents-need-verification/</link><pubDate>Mon, 29 Dec 2025 12:16:14 +0000</pubDate><guid>https://blog.randomdomain.co.za/posts/2025/12/agents-need-verification/</guid><description>&lt;p>Eno Reyes gave a short talk recently that deserves more attention than it got.
He is co-founder and CTO of Factory — a company building autonomous software engineering agents, founded in 2023, whose main product is a coding agent called Droid.
His argument is deceptively simple: &lt;strong>the frontier of what AI agents can do is not a function of model capability. It is a function of how verifiable your environment is.&lt;/strong>&lt;/p></description></item><item><title>AI is blowing up the software stack</title><link>https://blog.randomdomain.co.za/posts/2025/11/ai-blows-up-stack/</link><pubDate>Tue, 18 Nov 2025 19:11:29 +0000</pubDate><guid>https://blog.randomdomain.co.za/posts/2025/11/ai-blows-up-stack/</guid><description>&lt;blockquote>
&lt;p>AI is blowing up the software stack. Not only by creating more code, but by making all code cheaper. The act of writing software is rapidly commoditising. What used to take months now takes minutes. The bottleneck is no longer development…it’s validation and verification.&lt;/p>
&lt;p>As AI pushes out more code, faster than humans can reason about, the real leverage shifts to testing, validation, reliability, and security. The winners won’t be the ones who ship the most code, but the ones who can trust what they ship.&lt;/p></description></item><item><title>The TDAID Manifesto</title><link>https://blog.randomdomain.co.za/posts/2025/11/tdaid-manifesto/</link><pubDate>Mon, 10 Nov 2025 11:20:00 +0200</pubDate><guid>https://blog.randomdomain.co.za/posts/2025/11/tdaid-manifesto/</guid><description>&lt;h2 id="test-driven-ai-development-a-new-contract-between-human-and-machine">Test-Driven AI Development: A New Contract Between Human and Machine&lt;/h2>
&lt;p>&lt;em>A note for readers who don&amp;rsquo;t know me: this was first written for an internal work blog, where my colleagues could read it in the spirit it was intended. I&amp;rsquo;m publishing it here unchanged.&lt;/em>&lt;/p>
&lt;p>&lt;em>The manifesto form is deliberate. It is overstated on purpose — pitched to drag the Overton window on what &amp;ldquo;coding with AI&amp;rdquo; should mean, not offered as a finished doctrine. I still stand by every claim; I just want to flag that the volume is turned up for rhetorical effect.&lt;/em>&lt;/p>
&lt;p>&lt;em>Read it as a provocation, not a sermon.&lt;/em>&lt;/p></description></item><item><title>Test-Driven Development in the Age of AI: Why Natural Language Can't Replace Formal Specifications</title><link>https://blog.randomdomain.co.za/posts/2025/10/tdd-for-ai/</link><pubDate>Fri, 31 Oct 2025 21:10:00 +0200</pubDate><guid>https://blog.randomdomain.co.za/posts/2025/10/tdd-for-ai/</guid><description>&lt;p>I recently worked on a project where I wrote the unit tests first, then had Claude Code generate the implementation that passed those tests. The experience crystallized something I&amp;rsquo;ve been thinking about: &lt;strong>natural language is fundamentally too ambiguous to be an effective specification language for software, no matter how smart our LLMs become.&lt;/strong>&lt;/p>
&lt;p>This isn&amp;rsquo;t a hot take about current AI capabilities. This is a statement about linguistics.&lt;/p></description></item><item><title>Are We Re-Inventing Linguistics?</title><link>https://blog.randomdomain.co.za/posts/2025/08/reinventing-linguistics/</link><pubDate>Tue, 12 Aug 2025 13:33:00 +0200</pubDate><guid>https://blog.randomdomain.co.za/posts/2025/08/reinventing-linguistics/</guid><description>&lt;p>Every time I have read a new post offering advice on how to work with an LLM, be it with prompts or context, I just couldn&amp;rsquo;t shake the feeling that there was some unifying &amp;ldquo;theory of language&amp;rdquo; that explained what made a prompt good or bad.&lt;/p></description></item><item><title>The transformation of software development through AI presents an intriguing…</title><link>https://blog.randomdomain.co.za/posts/2025/02/ai-transforms-software/</link><pubDate>Mon, 10 Feb 2025 08:42:25 +0000</pubDate><guid>https://blog.randomdomain.co.za/posts/2025/02/ai-transforms-software/</guid><description>&lt;p>The transformation of software development through AI presents an intriguing application of Jevons Paradox: as development becomes more efficient, it is likely that we won&amp;rsquo;t see a reduction in demand for developers, but rather an increase.
What was a previously (economically) unfeasible project, now becomes viable, and so organizations can explore innovative solutions that were once too resource-intensive to pursue.&lt;/p>
&lt;blockquote>
&lt;p>&amp;ldquo;Cheaper software means people are going to want more of it.&amp;rdquo;&lt;/p></description></item><item><title>The rise of AI coding assistants</title><link>https://blog.randomdomain.co.za/posts/2024/12/ai-coding-assistants-rise/</link><pubDate>Sun, 22 Dec 2024 19:27:15 +0000</pubDate><guid>https://blog.randomdomain.co.za/posts/2024/12/ai-coding-assistants-rise/</guid><description>&lt;p>The rise of AI coding assistants like ChatGPT and GitHub Copilot has sparked intense debate in the programming community: Are we witnessing the beginning of the end for human developers?&lt;/p>
&lt;p>Throughout history, new technologies have often been perceived as threats to existing industries. However, rather than replacing workers entirely, these innovations have typically transformed how work is done - becoming valuable tools that augment human capabilities and often create entirely new types of jobs.&lt;/p></description></item><item><title>On Werner Vogels' 2024 AI Predictions</title><link>https://blog.randomdomain.co.za/posts/2023/12/vogels-ai-predictions/</link><pubDate>Fri, 08 Dec 2023 15:47:42 +0200</pubDate><guid>https://blog.randomdomain.co.za/posts/2023/12/vogels-ai-predictions/</guid><description>&lt;p>Werner Vogels published his annual predictions in late November 2023.
I want to take one of them seriously — not as a cheerleader, but as a sceptic who agrees with the conclusion while finding the framing too comfortable.&lt;/p>
&lt;p>The third prediction: AI assistants will redefine developer productivity.&lt;/p>
&lt;p>He is right.
That is the frustrating part.&lt;/p></description></item></channel></rss>