Latest Articles

PinnedYour Daily Standup Should Be a Slack Message

It’s 9am. You’ve just made your coffee. You’re ready to be productive. Then your calendar reminds you that you have standup in five minutes. You sigh, open the video call, and wait for everyone to trickle in over the next seven minutes while Dave figures out why his microphone isn’t working again. Finally, the ritual begins. Sarah goes first. “Yesterday I worked on the API stuff, today I’m continuing with the API stuff, no blockers.” Fantastic. Groundbreaking information. Absolutely could not have been a single line of text.

Reply All Should Require a CAPTCHA

Every email client on earth has made it trivially easy to commit one of the most devastating acts of workplace communication: the unnecessary reply all. One click. That is all it takes. One click and suddenly forty-seven people who did not need to be involved are involved. One click and an email thread that could have died quietly explodes into a cascade of responses, counter-responses, and people asking to be removed from the thread, which of course they send as a reply all.

How I Work, 2026 Edition

Every few years someone publishes a “how I work” post and I read it thinking yeah, that’s nice, but do you actually do all of that or did you just describe the idealised version of yourself? The version that wakes up at 5am, journals, meditates, drinks a green smoothie, and has inbox zero by 9am. I’m not that person. I never have been. Here’s what actually happens. I wake up sometime between 6:30 and 7:00 because my kids have decided that’s when the day starts regardless of what I think about it. There’s no alarm clock. There hasn’t been one in years. Children are the most reliable and least snooze-able alarm system ever invented. I make coffee. Strong, black, no sugar. This is not a personality trait. It’s a dependency.

Most Meetings Could Be an Email, Most Emails Could Be a Slack, Most Slacks Could Be Nothing

You have a meeting on your calendar. It is thirty minutes long. There are six people invited. The topic is something that could be summarised in two sentences. By the time everyone joins, exchanges pleasantries, gets distracted, and finally discusses the actual subject, you have burned three person-hours of collective time. That meeting should have been an email. But wait. You sent an email. It was three paragraphs explaining a decision. Nobody needed to respond. Nobody needed to discuss. You just needed people to know something. Now six people have another email in their inbox, another thing to read, another context switch in their day.

Just Because AI Can Generate Code Doesn't Mean It's Good Code

There’s a fantasy floating around tech circles that AI is about to make software developers obsolete. The logic goes something like this: AI can write code now, therefore anyone can build software, therefore we don’t need programmers anymore. It’s a seductive idea if you’ve never actually shipped production software. I’ve been using AI coding assistants daily for well over a year now. Claude, Copilot, Cursor, the works. And here’s what I’ve learned: AI is genuinely transformative for experienced developers. It’s also genuinely dangerous in the hands of people who don’t know what they’re looking at.

Technical Interviews Are Hazing Rituals We Keep Because We Survived Them

Technical interviews do not predict job performance. We have known this for years. Study after study shows that whiteboard coding, algorithm puzzles, and system design interrogations have almost no correlation with how well someone actually does the job. We keep doing them anyway. Why? Because we went through them. We suffered. We ground LeetCode for months. We memorised sorting algorithms we have never used professionally. We practiced answering questions about designing Twitter’s backend despite never working at that scale. We did the hazing, and now it is our turn to haze.

Notion Is Where Productivity Goes to Die

Notion is not a productivity tool. Notion is a tool for feeling productive while accomplishing nothing. It is a creativity sink disguised as a workspace. It is where work goes to become content about work. I have watched people spend more time building their Notion setup than actually doing the tasks the setup was meant to track. I have done it myself. This is not productivity. This is procrastination with better aesthetics.

Small Teams Get Sh#t Done

Every struggling project in history has had some executive look at the timeline, panic, and say the same thing: “Let’s throw more people at it.” It’s such a comforting idea. More hands, faster work. More brains, better solutions. It makes intuitive sense, which is exactly why it’s wrong. Fred Brooks figured this out in 1975 when he wrote The Mythical Man-Month. His observation was brutally simple: adding people to a late software project makes it later. Not a little later. Meaningfully, measurably later. And yet here we are, 50 years on, and companies are still making the same mistake. They see a deadline slipping and reach for the hiring button like it’s a panic switch.

Docker Compose Is All You Need and Kubernetes People Are in Denial

I am going to say something that will upset a lot of people who have invested significant portions of their careers into container orchestration: Docker Compose is probably all you need. Not Kubernetes. Not ECS. Not Nomad. Not whatever managed container platform your cloud provider is pushing this quarter. Docker Compose. The thing you used in tutorials before graduating to real infrastructure. That thing. It is enough. Kubernetes is incredible technology you do not need Kubernetes can do amazing things. It can manage thousands of containers across hundreds of nodes. It can self-heal, auto-scale, handle rolling deployments, manage secrets, configure networking, and orchestrate workloads across multiple data centres. It is genuinely impressive engineering.

I Am Glad GraphQL Is Dead, What a Fucking Mistake That Was

GraphQL is dying and I could not be happier. The hype has faded. The conference talks have dried up. The true believers have gone quiet. Teams are quietly migrating back to REST and pretending they never suggested GraphQL in the first place. The fever has broken. Good. It was a fucking mistake. The problem it solved did not exist GraphQL was supposed to solve over-fetching. Your REST API returns too much data, they said. You are wasting bandwidth, they said. The mobile clients only need three fields but you are sending back fifty.