Adam Tal
Adam Tal

I'm Adam Tal — an engineer in New York. This is my notebook: short notes on building software, thinking clearly, and the small habits that keep the work honest. Most pieces run a few paragraphs. Occasionally one runs long.

New York Writing since 2019 Currently →
§ Now
Apr 2026

The things I'm building right now. Inspired by Derek Sivers' /now page — a quiet answer to "what are you working on these days?"

  1. Triber.net Connecting people through shared skills and interests. A quieter way to find the folks you actually want to build, train, and think alongside. Live · Product
  2. Hacker News Hiring Index Hiring signals distilled from every Who's Hiring thread — what companies are asking for, and how that's changing month to month. Live · Data
Want to talk about either one?  hi@adamtal.me →
§ Writing
2019 — 2026
2026
  1. Apr 11 First make the change easy, then make the easy change On refactoring thought before refactoring code.
  2. Mar 28 North star metric A single number every team tries, and most pick badly.
  3. Mar 14 A.B.C. — always be creating Consumption compounds slowly. So does its opposite.
  4. Feb 22 Choosing a marketing strategy Three questions to answer before you pick a channel.
  5. Feb 05 Slow down to speed up A classmate who relearned math from the beginning — and why it stuck with me.
  6. Jan 18 Work smarter and work harder They are complements, not substitutes. The phrase obscures this.
2025
  1. Dec 09 Time is money, but money is not time Asymmetric opportunity cost, and what it quietly implies.
  2. Nov 24 How to survive a fast A few rituals picked up over years of the practice.
§ Latest note

First make the change easy,
then make the easy change

April 11, 2026 · 3 min read

This line is from Kent Beck, the software developer and creator of extreme programming. It arrived in my life at the right time and never quite left.

First make the change easy, then make the easy change.

Refactoring code can be a challenge. Software grows with time; left unchecked, it thickens into something hard to reason about. Spaghetti is never far from the word that comes to mind. When I need to add a feature to a tangled module, the temptation is to reach straight for the feature — but the feature is usually not the hard part. The hard part is that the module wasn't ready to receive it.

So I've learned to pause and do the boring work first. I'll rename a variable that's been quietly lying to me. I'll split a function that does two things into two functions that each do one. I'll move a helper to where it belongs. None of this is the change I came to make. All of it makes the change I came to make trivial.

The shape of the idea extends past code. When I'm stuck between choices that feel equally uncomfortable, it's almost always because my thinking isn't organized enough to tell them apart. The honest move is not to pick faster — it's to do the work I should have done already. Write the thing down. Separate what I know from what I'm guessing. Remove the options that don't actually exist.

After that, the decision tends to make itself. Which is the point: the quote is really an instruction about preparation1, dressed up as an instruction about code.

1  Or, less charitably, an instruction about not being in a hurry.