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.
October 2024
Make mistakes easy to fix
You can't prevent bugs. You'll burn out. Instead focus on making them quick to fix.
September 2024
The Laws of Software Evolution
Manny Lehman was one of the first to notice that software is never done. It just continues to evolve forever.
The Series A inflection point
The Series A inflection point is the most fun time in a startup, if you ask me. Here's what it looks like
You can side-step a yak, they don't all need to be shaved
When yaks aren't procrastination, they might be tunnel vision. You're so focused on the right solution, you miss the good enough solution
Better is good
A small improvement that lands is better than a large improvement stuck in review
How big up-front design fails
A long design phase without shipping kills many software projects. Here's a story from production I haven't shared before.
The Tour of Duty approach to career
Quick note today to plant the seed of an idea I've always loved: The Tour of Duty.
Why software projects fail
5 common themes
August 2024
What helps you ship confidently?
Been thinking about what needs to be in place for engineers to ship with confidence
Interviewing tips for experienced engineers
The way you interview changes as you go through your career. If you're grinding leetcode 10 years in, something's wrong.
Let small fires burn
You can't fix everything. Focus on the next big thing and let the small fires burn.
Tips from 8 months of TanStack/Router in production
On my last day at Tia I wrote a master vision doc for our TanStack Router app. Here are the parts I can share.
Some personal news
When you see a unicorn, you gotta hop on
Small change in big scary codebase?
Making small changes in large unfamiliar codebases is the job. That's what engineers do all day.
Why SQL is Forever followup
Yes SQL is super flexible. That is its strenght and its weakness
July 2024
Why SQL is Forever
Never underestimate the power of good marketing for bad products. NoSQL was fun but SQL is here to stay.
90% of performance is data access patterns
Removing a single line of code slashed database CPU usage by 66% π€
DRY β the common source of bad abstractions
Swizec reveals the hidden pitfalls of overusing the DRY principle in coding, leading to bad abstractions. Discover how to write adaptable, efficient code that avoids these common traps.
Scaling Fast, my talk on lessons from tech startups
This talk from C3Fest summarizes the key lessons I've learned in the past ~15 years of working in tech startups. It's a high level overview of a new book I'm writing (60% done).
You can't side-quest a product
Here's a trap that talented engineers fall into all the time. It creates frustration, burnout, and the genre of tweets that read like "Why don't people care about the amazing work I'm doing".
June 2024
6 books engineers should read
Here are 6 books I'd buy every engineer who joins my team, if I ran a team. You might like 'em too.
The dangers of spurious automation and how to automate anything
Discover the potential pitfalls of spurious automation and learn a foolproof three-step process to automate any task effectively. Don't miss out on understanding when automation is truly beneficial and when it can become a hindrance.
Itβs okay to just do the work
Not everything needs to work forever. Start by solving the problem
Using AI to spark connections at a conference
We built an AI algorithm to help you find interesting people to talk to at a conference. And make sure it's not awkward
Notes for my Scaling Fast talk next week
Decided to publish my notes because they look pretty useful on their own. Although I hope my stage presence adds a little something something. Enjoy :)
How to use feature flags
All the hard lessons learned using feature flags in production. Skips the why and gets to the how.
May 2024
Why useSuspenseQuery works
A reader asked 'Wtf why does this work?'
Cleaner components with useSuspenseQuery
Sick of complex states in your code? React Suspense can simplify your components for more readable, robust code!
Why you shouldn't use AI to write your tests
If you derive tests from your implementation, you can't apply the Beyonce rule. What if the code is wrong and that wasn't the programmer's intent? We'll never know. The bug now exists in both places.
Validate your assumptions early
here's war story from last summer. I've talked about it in workshops but haven't written it down before. It's for a book I'm working on.