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.