Ship fast without breaking things
Every team slows down as it grows. More people, more code, more meetings, less shipping. It doesn't have to be that way.
These essays dig into velocity, teamwork, and taming complexity โ the engineering side and the people side. They're the thinking behind Scaling Fast, my book on software engineering through hypergrowth.
Essays on shipping fast
31 articles from 2025 ยท show all
November 2025
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?
The unreasonable effectiveness of stack ranking
Stakeholders are silly people. Everything feels important and urgent. Stack ranking helps
October 2025
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.
September 2025
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.
Quick update on Scaling Fast, my next book
Your goal is not to write a book, it's to change how your reader thinks
July 2025
A few more thoughts on mentoring
Wanted to share a few more thoughts on my mentoring philosophy and answer questions that readers asked
June 2025
My mentoring philosophy
Yesterday I had lunch with a newly promoted lead and realized I have opinions on mentoring engineers. Here they are.
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
Stateless decision making
Do you ever feel like your brain is full and there's so much going on you can barely keep up? Me too.
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.
The difference between a product and a project
A project is something you do, a product is something you own.
March 2025
Sprint vs Shape Up vs Kanban
Whenever I talk about sprints, someone mentions Shape Up. So you have 9 week sprints โ what's the difference?
Why sprints
For the past few months I've been introducing sprints into a chaotic startup that's been growing so fast everyone's got whiplash. Since August, 5 engineers turned into 12. I think it's starting to work.
Principles of high output engineering teams
A few engineering principles I aim to instill in every team I join. Lead or not.
February 2025
Code yourself out of the job
Let go of your legos and let others do the work.
A pattern for composable UI in Flask
Turn your unwieldy Flask codebase into manageable, composable fragments with this UI pattern. Very close to HTMX.
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
How do you prioritize?
How do you choose what to work on first? As an empowered engineer that's a key skill.
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.