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.