Latest Articles

Microservices Were a Mistake for 90% of Teams Who Adopted Them

Microservices were a mistake. Not the concept itself, which has legitimate uses at genuine scale. The mistake was convincing an entire generation of developers that their CRUD app needed to be split into 47 independently deployable services communicating over a message bus designed by someone who watched one too many conference talks. I said what I said. Come at me. Netflix ruined everything This is Netflix’s fault. Not intentionally. They shared how they solved their genuinely massive scale problems, and the rest of the industry collectively lost its mind.

Updating CI Twig After 12 Years

I recently pushed an update to CI Twig, a Codeigniter library I created back in 2012 for integrating the Twig templating engine. Twelve years. That’s older than some of the junior developers I’ve worked with. It’s wild to think that something I built when I was still figuring out what I was doing has been sitting there on GitHub this whole time. CI Twig was one of my first proper open source contributions. Not my first bit of code on the internet, but one of the first things I put out there with the intention of other people actually using it. I remember being nervous about it. What if my code was rubbish? What if someone found a bug and called me out? What if nobody used it at all?

If Your API Needs a 40-Page Docs Site, Your API Is Bad

I should not need to read a novel to call your endpoint. If your API documentation spans forty pages, multiple guides, a getting started tutorial, a concepts section, a best practices section, and a troubleshooting FAQ, your API is not well documented. Your API is badly designed. The documentation is compensating for failures that should have been fixed in the API itself. Good APIs are self-evident. You look at the endpoint, you understand what it does. You look at the request, you understand what to send. You look at the response, you understand what you got back. The documentation exists to confirm what you already intuited, not to explain an incomprehensible system.

Nobody Tells You How Hard It Is to Write Technical Documentation

I have spent more time than I care to admit writing technical documentation for Aurelia 2. The docs at docs.aurelia.io have been through countless revisions, rewrites, restructures, and moments where I stared at the screen wondering if I had forgotten how to form sentences. Writing code is hard. Writing about code in a way that helps other people write code is harder. Nobody prepares you for this. The first thing you learn is that you do not actually understand the thing you are documenting. You think you do. You have used it, you have built things with it, you can explain it to a colleague at your desk.

Imposter Syndrome Discourse Has Become Its Own Problem

Imposter syndrome is real. Plenty of people, especially those from underrepresented backgrounds, genuinely struggle with feeling like they do not belong despite evidence to the contrary. That is a real thing that affects real people and deserves real support. But somewhere along the way, the discourse around imposter syndrome went completely off the rails. It became a content genre. A personality trait. A thing people perform on LinkedIn for engagement. And I think it is doing more harm than good at this point.

Your Startup Does Not Need a Mobile App

You are a startup. You have twelve users, three of whom are your mum, your co-founder, and your co-founder’s mum. You have six months of runway. You have not found product-market fit. You are still pivoting weekly based on whatever feedback you got from the last person who agreed to a demo. And you want to build a mobile app. No. Stop. Put the Xcode down and step away from the keyboard.

Australian Coffee Snobbery Is Justified, Actually

Australians are coffee snobs. This is not a stereotype. It is a fact. We are insufferable about it. We will complain about coffee in other countries. We will refuse to drink certain things. We will make faces at menu items that locals consider perfectly normal. We have opinions about milk texture that border on religious doctrine. And you know what? We are right. Australian coffee is genuinely, measurably, objectively better than what most of the world drinks. This is not nationalism. This is not bias. This is the truth, and I will not apologise for it.

Announcing AskBad: The Q&A Platform for Terrible Advice

I’ve built a Q&A platform where the worst answers win. It’s called AskBad and it’s exactly what it sounds like. Look, we’ve already got Quora, StackOverflow, Reddit, and a dozen other places to ask questions and get helpful, well-researched answers from knowledgeable people. The internet is drowning in good advice. What we’re clearly missing is a dedicated space for absolutely terrible guidance. AskBad started as a satirical reverse StackOverflow. You know those answers on Stack Overflow that make you question whether the person has ever touched a computer? Imagine a whole platform celebrating those. The worse your answer, the more upvotes you get. You earn negative karma. There are badges for being spectacularly unhelpful.

The Mass Tech Layoffs Broke Something That Won't Come Back

Between 2022 and 2024, the tech industry laid off somewhere around half a million people. Not contractors. Not underperformers. Engineers, designers, product managers, entire teams deleted in a single afternoon. People who had been told they were essential, who had stock options vesting, who had relocated their families for these jobs. Gone. Often via email. Sometimes while locked out of their laptops mid-sentence. The industry has moved on. Hiring is picking up. The job market is recovering. But something broke during those years that is not coming back, and I think we are only starting to understand what it was.

Vibe Coding Is Not AI-Assisted Coding

Somewhere in the last year, we collectively decided that typing prompts into an AI and hoping for the best counts as software development. Andrej Karpathy coined the term “vibe coding” in February 2025, and what started as a cheeky observation has become an actual workflow for people shipping production code. This is a problem. Let me be clear about something: I use AI coding tools every day. Claude, Copilot, Cursor. They’re genuinely useful. But there’s a massive difference between AI-assisted coding and vibe coding, and the industry seems determined to blur that line until someone’s startup implodes in a spectacular security breach.