Software Engineering

88 articles · all categories

23 articles from 2025 · show all

October 2025

Make sure it works first

Explore the importance of functionality over elegance in Swizec's latest piece. Learn from his experience of tripling an engineering team's size within a year.

August 2025

HTMX – Server Components without React

Let's be honest: Half the APIs you write are for a specific purpose in a specific component on a specific page. Re-usable in theory but you've never tried. That's where Server Components come in ... but what if your server isn't JavaScript?

Quick tips for distributed event-based systems

Hidden lessons painfully learned over the years.

July 2025

These 3 alerts catch the most issues

Here's a few alerts I've found unreasonably effective over time

Cursor background agents in Slack changed my workflow

a couple weeks ago Cursor launched a Slack integration and ... wow. First time I can say AI *changed* my workflow

May 2025

Software architecture IS Conway's Law

Can you even have architecture before there's a team?

Common abstraction traps

Here's a few common abstraction traps that suck you in, look like they improve your code, then turn into bad ideas as your system grows.

DRY – a common source of bad abstractions

The worst and hardest to maintain code that I've seen or written has been in pursuit of DRY

Why websites and webapps are different

The website vs webapp debate is at least as old as my career. And it keeps coming up. One camp says "React is too complex you don't need any of that", the other camp goes "I don't understand how you live like this". Both are right.

How do you find time for cleanup work

A reader asks how do you find time for technical cleanup work. If OKRs and bugs take priority, when will you make improvements?

April 2025

Say no to abstract code

The trick, then, is to keep related code close together to reduce context boundaries and to limit the amount of relevant detail so it fits in your working memory.

re: The Industrialization of IT

I guess if AI is what it takes to finally get people to care about architecture and team structure then mission accomplished?

What to work on next?

Younger engineers keep asking how I prioritize in a chaotic environment. Here's my approach.

Always deploy at peak traffic

A hard-won lesson for ya: Always deploy when you've got lots of traffic.

March 2025

What I mean by "tests can be slop"

Tests may look like slop, but make them clear, not clever. Best practices are key: Test outcomes, not code. Name with intent. Keep tests independent. More straightforward tests beat fewer abstract ones.

Principles of high output engineering teams

A few engineering principles I aim to instill in every team I join. Lead or not.

February 2025

Depth takes time

It takes about 3 years to experience the consequences of your own decisions.

I was wrong about databases

The best part about writing is that you get to learn new and exciting ways you were wrong. Databases are smarter than I thought!

*Why* the relational data model is so good

You've heard that array or list columns in a database are bad. But why? Yesterday it clicked for me

How *do* you break down a large project? INVEST

Going from Big Vision to Series of Executable Steps is a key skill for senior+ engineers. PMs can help but they don't know everything.

January 2025

Build the abstraction first

Hardcoding logic when you're tight on time doesn't need to make a mess. You can build the abstraction first!

What I learned from Accelerate

Accelerate is the empirical research behind books such as The Phoenix/Unicorn Project and (parts of) Software Engineering at Google. I loved it.

Why you need a task queue

Task queues have been on my mind lately so here's a little primer on what they are, how they work, and why you need them when your project starts to grow.