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.
72 articles from 2022 Β· show all
July 2022
Reader question: Feeling guilt as a tech lead
Keep getting the guilt, that I'm not able to code, just running around for discussions and solving other issues, managing people. Any idea to manage all the fronts and get rid of this guilt?
You don't *have to* build it sloppy to go fast
My favorite mistake to make when I'm in a hurry is to think that I _have to_ build new features the sloppiest way possible. Find the quick fix and move on. But that's not true.
A work ritual that keeps me sane
A coworker asked me for tips on how to stay focused during the day. Here's what I said.
What makes a great software engineer?
In 2015 a group of researchers asked 59 experienced engineers at Microsoft "What makes a great software engineer?". Here's what they found.
Write abstractions, not just code
Wherein I use a silly example to show why you need more than small reusable single purpose functions to write good software.
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