Articles

Software engineering lessons from production, raw and honest from the heart — almost 20 years of them. Jump to a year in the sidebar, or browse categories.

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.

A tough job market is the best time to start something

Here's how to navigate a tough job market from someone dumb enough to have done it before. Me.

Place good startup bets

You can't win every bet. Your goal is to be a little more right than wrong and keep playing

Small projects, clear scope

Minutes of planning save you days of programming. It is shocking how little planning it takes to make a big difference.

A better way to end-to-end test your webapp

End-to-end tests are the best way to test your webapp, but they're flaky and annoying to write. I'm trying a new agentic approach that fixes the issue.

2025 Year in Review

I called it a year in review but it's so much more.

December 2025

Are you playing games you want to win?

As we enter the funny week-without-time between Christmas and New Year, it's a great time to reflect. Here's a framework I like to use.

How good engineering unlocks fast scaling

You're building systems and tools to help companies grow without drowning in work. This fuels your equity, career capital, and reputation.

Scaling Fast – my new book on software engineering through the hockeystick

After almost 3 years of writing, research, and editing Scaling Fast is now available in paperback and ebook wherever books are sold 🥳

November 2025

What makes your resume stand out

What did you do, for whom, did it work

How to lead a project

you were asked to lead or own a project. Now what? Here are a few practical steps to help you succeed.

*People* detangle a ball of mud

Ball of mud is the world's most popular software architecture. The one we all use at work. But it sucks to work with. So what do you do?

AI fills my day with busywork

Remember when AI was gonna take our jobs? I've never felt busier. The more I get done, the more there is to do.

The unreasonable effectiveness of stack ranking

Stakeholders are silly people. Everything feels important and urgent. Stack ranking helps

October 2025

Chesterton's true lesson

Too many engineers cry chestertons fence and never check why the code exists

The job behind the job [of a high level IC]

Advancing big goals while you stay on top of operational day-to-day fires _is the job_. This is hard. Here are a few tips I've found helpful.

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.

Feedback is a strange thing

Performance oscillates around your mean. Your average is what matters.

React, HTMX, and TanStack/Start

More and more UI frameworks are ditching JSON as the transfer protocol and going back to server-rendered markup injected into your app

The grind won't get you there

Don't grind on something the company doesn't value. Hard work is not rewarded. **_Outcomes_** are rewarded.

September 2025

Most history is fake myth building

Regimes come and go but the people stay. Observations from living through a socialism->capitalism transition

You may be looking for a useSyncExternalStore

When you see a `useEffect` that updates a `useState` and returns a value, you might be looking for a `useSyncExternalStore`. This is my current vendetta.

How to be witty and off-the-cuff as a slow deep thinker

Deep thinking is the super power of wit

Should you join an AI startup right now?

Beyond income there's 2 reasons to take any specific job: Invest in yourself or invest in the company. Both is best.

Leadership lessons from growing 3x in 1 year

So this talk is my attempt to step back and write down some of the things I've learned. Hope you find something to apply in your team.

August 2025

Pair programming

Great for learning those little tricks of the trade you forgot you even learned

Yes it's like spinning plates

In a fast-growing company software engineering feels like spinning plates. Nothing ever stays fixed.

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.