One of my favorite questions is: “What’s wrong with this idea?” It drives the conversation away from why the idea is great, and toward finding its flaws. That is invaluable in technology. ...
Things I Check Before Opening a PR
What is a programmer but a series of PRs (pull requests)? I optimize PRs to introduce the best code I can, be easy to review, and document my work so I can make sense of it in the future. Here are some things I always check before opening a PR. ...
Why We Discourage Sleep in Code
You might have heard that using blocking, waiting code, e.g., sleep in many languages, is discouraged. Why? ...
How to Unabstract an Abstraction
Abstractions in code are easy to add and challenging to remove. Sometimes we feel stuck with them. But the good news is, you can back out of almost any abstraction with the right mindset. ...
Building with MCP, for Real
This year I built several Model Context Protocol (MCP) servers to support ongoing R&D. Here’s my report. ...
Learning to Program in 2026
If I had to start over as a person who wanted to become a professional programmer, in 2026, what would I do? ...
Things I Don't Know, As of 2026
Here’s a list of the things that I’d like to learn about and have chosen not to specialize in (yet), as of 2026. ...
Getting It Right the First Time
There’s an enviable quality of great engineers I’ve known: they seem to get things right the first time. When you ask them to do something, and they say “It’s done”, it is, almost always. How? ...
Running Great Refinement Meetings
This year I’ve run over 25 Scrum refinement meetings; here’s what I’ve learned. ...
Always Be Ranking
Anytime you’re making a list at work, rank it. ...