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 2022
Always have 3 answers
How do you stand out as an expert amid tech layoffs?
June 2022
The audience loved my talk but I didn't
A critical look at a conference talk that went great but felt a little off.
Coding forces you to understand the problem
Programming translates fuzzy understanding into exacting specifications. Thatβs why itβs hard. The Illusion of Explanatory Depth reigns supreme
A lesson on expertise from a great mafia movie
You cannot make something good until you understand who you're making it for.
You are allowed to invent HTTP status codes
A fun problem for RESTful APIs: Did you get 404 because your URL is wrong or because the resource wasn't found?
There are no bad teams
itβs the leader, not the team
May 2022
Writing software is like kicking a can
Writing software is a playful process of exploration and discovery. Like a game of kick the can on a Sunday walk.
The Italian foods theory of bad software design π
Spaghetti code β unstructured Ravioli code β too structured Lasagna code β layered wrong Minestrone software β unclear domains
What microservices are for
Microservices are a pain in the ass. They turn every system into a byzantine mess of complexity. But this week ... they saved my butt.
Learnings about the future of the web from Reactathon
The first in-person conference in years! It was wonderful π€© - Remix is great - Serverless at edge is the future - GDPR does not play with π
April 2022
Bad excuses to want a rewrite
Here's a sneak peek at a new book I'm writing about Refactoring and Rewriting. It's with a publisher so I might get in trouble for sharing this, but it's a first draft ... they own the final version π
The role of a senior+ engineer
"Every product org should have a senior+ engineer whose job it is to run around and make everyone else more productive" π€ That IS the role of a senior+ engineer
Quick tip about JavaScript's optional chaining operator
People on twitter loved this trick I learned from a coworker's pull request the other day. You might like it too.
Code Review Practices for Refactoring Changes
Do you review refactoring pull requests differently than you do others? An empirical study of OpenStack, an open source cloud platform, says that you do and finds 6 common criteria.
How we made the best burndown chart you've ever seen
My entire career I've never seen a sprint finished on time. The new manager said "Oh I think we can fix that" ... 18 months later he proved me wrong
When to join and leave a company, project, or trend
Timing changes everything. Who do you think has better engineers? The team that built Google from 9 million daily searches in 2000 to 1 billion in 2009, or the team that launched Google's 10th chat app last year?
Promise.allSettled, a wonderful tool for resilient code
The pros and cons of different approaches to writing resilient code that handles partial failures
March 2022
Adding categories to a Gatsby blog (for better SEO)
One of my biggest frustrations since migrating swizec.com from Wordpress to Gatsby was that I never added categories. Always wanted to, never did. Thought it would be super hard. Gatsby made it painless
Saving time in UTC doesn't work and offsets aren't enough
Lessons from a painful outage with timezones, UTC offsets, and database clients that took a whole week to resolve.
A quick lesson in writing resilient code
On the backend anything can and will fail. How do you deal with that?
Are you the engineer who scoffs at high salary numbers?
Engineering compensation falls into groups so different that neither group even realizes the others exist. And they fight about it.
Why experts charge more
Ever noticed how an expert's job isn't that different from an apprentice's? Yet they can charge way more π€
How to give and receive feedback
Feedback can save an airplane from crashing, or upset everyone around you. But for you personally, honest feedback is the fastest way to become a better engineer. Fixing what you're bad at is where the gains hide.
February 2022
A new VSCode extension makes state machines shine on a team
When you grok state machines, a new world of computational beauty and software design opens in front of your eyes. Things that used to be hard become easy. The impossible becomes possible. And you turn into that annoying team member.
Be their shit umbrella
because if you go to bat for the team, the team goes to bat for you
Immutability isn't free
Or how we took an API endpoint from 16s to 3s.
Why mentoring matters
Here's a funny video about Ivane, a construction worker with amazing productivity and work ethic. Imagine what Ivane could do if someone showed him how to use his tools π±
How I used indie hacking to sponsor my own greencard
The longest project of my life
January 2022
Quick tip for system design interviews
What are system design interviews for anyway?
How to add Typeform as a Gatsby source
Every year I ask readers if they're enjoying my newsletter. Then fail to use those responses π This year I said heck it and built a /testimonials page that shows everyone's feedback raw from Typeform. Here's how.