Skip to content
All posts
2 min read

Honest reps

A rep only counts if it is clean. That rule runs my piano practice, and it turns out to run my deploys too.

PersonalMusic

My practice log does not count reps. It counts clean reps. Four bars, twenty clicks under tempo, hands together, and if the last bar smears, the rep did not happen. Play it again.

Practicing fast feels like progress. It is loud, it resembles the concert, and it records the smear. The hands learn exactly what you play, with no opinion about what you meant. Ten fast repetitions of a passage with a flinch in bar three is ten lessons in flinching. Slow practice is embarrassing, private, and the only version that deposits anything.

Shipping has the same physics. This spring I caught myself pushing a feature I knew had a flake in it, because it demoed well and I wanted the feeling of done. That is a fast rep with a smear. I was not shipping the feature; I was rehearsing the bug. The fix is the same fix: drop twenty clicks, take the piece apart, and only count the version that runs clean.

Recording yourself is the other honest instrument. Play a passage, feel great about it, then listen back cold and hear what you actually did. The listen-back is reading your own diff the next morning. Both remove the memory of effort from the judgment of the result, which matters because effort is not evidence. The recording does not know you tried hard.

Piano has no test suite. There is no green check for a phrase; the only gate is whether I can stand the playback, which means the gate is taste, which means practicing is partly the work of making my own taste stricter. That gate ports to code better than most engineering advice does. Plenty of code passes every check and still smears.

A recital date does the job a release date does. It forces you to play the piece you have, not the piece you are becoming. Some passage is going to be performed at whatever level it reached, and knowing that months out changes how you spend Tuesday. I plan features the same way now: the deadline is not pressure, it is information about which slow sections deserve the reps.

The opinion I have earned: practice that feels good is mostly waste. If a session had no passage I hated, I did not practice, I gave a private concert. The programming version is rewriting code I already like instead of opening the file I am afraid of.

Twenty clicks under tempo, until it is boring. Boring is what clean sounds like from the inside.

Remiel Shirazi

CTO & Co-founder | AI, Roblox & Piano