Software Engineering

88 articles · all categories

July 2026

Theory of constraints, AI, and code review

Feedback from an expert is how you learn taste. Your code doesn't matter until it's shipped.

June 2026

You get what you hire

Hiring engineers is like deciding what kind of system you'll have. This seems obvious but surprised me to see first-hand.

Code is the easy part, or how we refactored half the business to fix a janky script

This is a classic startup war story: Someone had built a leaky rowboat. It worked! Then we started flying the rowboat as a Cessna. What we needed was an aircraft carrier.

Good software gets out of the way

Explore the art of invisible software and user-centric workflow design with Swizec and Kent C Dodds. Uncover what separates a good engineer from a great one in this insightful dialogue.

May 2026

Just fix their PR

You know what's better than a code review comment? A fix.

What you need to make an agent

I've been digging into agents for internal tooling and processes. Looking for how to scale without drowning in manual work. Here's what I found

Quick note on evals and putting AI in your resume

When candidates put AI on their resume, the key thing I try to find out is whether they used evals. How did you measure making improvements?

April 2026

AI now writes 97% of my code. Here's what I learned

Forget the bullshit tips and tricks, just talk to it.

Watch people work

We talk a lot about outcomes over outputs and how engineers are supposed to get us over the water, not blindly build a bridge because someone asked for a bridge. But how do you do that in practice?

Frustration Driven Development

Frustration is your greatest engineering asset. What do you do the 5th time someone asks for the same damn thing yet again?

March 2026

Taming chaos is a learnable skill

How you approach software engineering makes it harder or easier to handle interruptions and other chaos. Writing a behavioral interview made me realize this is a learnable skill!

February 2026

Users buy your service, not your code

You might enjoy this podcast episode. Sylvain and I talked about owning production in a world where AI writes the code.

The 3 curves that make a scalable business

You want users and revenue to grow exponentially. Bugs per day to grow linearly. Support work to grow logarithmically. Your goal is to make this happen.

In praise of the stacked pull request

How fast you do code review is how fast you do everything. Your PR queue is the leading indicator of team velocity. Stacked PRs can help.

January 2026

How you migrate is everything

Your code becomes legacy software when it works. You build something to solve a problem, then the problem changes. Or best practices evolve. Or you hire team members with more experience. Or the world changes. Or you have more people touching the same code and your beautiful architectural vision didn't translate.

The future of software engineering is SRE

When code gets cheap operational excellence wins. Anyone can build a greenfield demo, but it takes engineering to run a service.

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.