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 and curated collections.
July 2025
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
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.
TechLeadConf 2025 in September
Dive into rapid tech team growth at TechLeadConf 2025, featuring lessons from Swizec's experience with Plasmidsaurus's explosive expansion. Explore tech debt, AI, and leadership insights from industry experts.
It's like surfing
The weird thing about engineering management is that you feel kinda useless. Yet if you stop, projects stop.
Why utils are bad, an example
Last week we ran into the perfect example of how utils-based code will smack you over the face at the worst moment. So much time wasted
Why AI won't replace you
Complexity.
3 sticky insights from 3 eng management books
Ever feel like your brain is blended and you can't even keep up with the things you're learning? Me too. But the good shit stays.
May 2025
Software architecture IS Conway's Law
Can you even have architecture before there's a team?
You're a business
Quick thought from a conversation with friends
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.
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.
Your interview is a sales call
I've been doing hiring manager screens lately. Here's a few tips.
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.
10 years in America
10 years ago yesterday I moved to America with 1.5 suitcases, ~2k in the bank, a place to crash, and a freelancing client lined up. A few thoughts.
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.
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.
AI writes good tests, actually
I've been using AI to write tests and it works surprisingly well! Here's how.
Principles of high output engineering teams
A few engineering principles I aim to instill in every team I join. Lead or not.
Talk to more users sooner
Debate less, ship more.
February 2025
What I learned from Inspired
Products not projects. Outcomes not features. Iterate.
Depth takes time
It takes about 3 years to experience the consequences of your own decisions.
Code yourself out of the job
Let go of your legos and let others do the work.