Software Development

Announcing RangeMenu

RangeMenu adds a proper right-click context menu to Froala Editor, with any Froala command by name, contextual table and image actions, and nested submenus.

None of My Billing Bugs Crashed Anything

A day auditing the billing side of a property forecasting app. Every bug I found reported a wrong number confidently instead of throwing an error.

Announcing RangeSearch

RangeSearch is a WooCommerce search plugin with its own index, a fast suggestion endpoint, and typo correction against your own catalogue.

Announcing Preset Bridge

Preset Bridge is an unofficial API and store integration layer for Cortex Cloud, so Quad Cortex preset sellers stop fulfilling every order by hand.

The Best Code I Ever Wrote Was the Code I Deleted

I have written a lot of code. Hundreds of thousands of lines across dozens of projects over twenty years. Some of it was clever. Some of it was elegant. Some of it solved hard problems in interesting ways. The best code I ever wrote was none of that. The best code I ever wrote was the code I deleted. A function that turned out to be unnecessary. A feature that nobody used. An abstraction that added complexity without adding value. A clever solution to a problem we did not actually have. Each deletion made the codebase better in a way that no addition could match.

Boring Technology Is a Competitive Advantage Disguised as Embarrassment

The most successful software I have ever built ran on technology that was embarrassing to admit at the time. PHP when everyone was doing Node. PostgreSQL when everyone was doing MongoDB. Server-rendered HTML when everyone was doing SPAs. Cron jobs when everyone was doing event-driven architecture. I was embarrassed about these choices at meetups. I felt like I had to apologise for not using the cool stuff. The other developers talked about their microservices and their Kubernetes clusters and I smiled and nodded and went home to my monolith that actually worked.

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.

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.