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