NKESSLING@TERMINALSCREEN NOTEOpen to work from Nov 2026RTM 23:02:08 · UTC 21:02
>
NOTE ~/writing BUILD SYSTEMS
30 August 20269 min readby Noa Kessling

Cache keys are inputs, not branch names

How hashing a step's real inputs took median CI from 18 minutes to 3.

NOTE · PLAIN TEXT

How hashing a step's real inputs took median CI from 18 minutes to 3.

How hashing a step's real inputs took median CI from 18 minutes to 3.

If your cache key contains the branch name, every new branch starts cold. The only honest key is a hash of what the step reads.

What counts as an input

Source files, environment variables the step reads, and the toolchain version. Forgetting the toolchain cost us a week of confusing hits after an upgrade.

SUB NEWSLETTERMONTHLY

One note a month. No tracking pixels.

New research notes by email, plain text, with a one-click unsubscribe.

412 engineers read it. Unsubscribe any time.
NOTE WRITING · RESEARCH NOTES8 NOTES

Keep reading.

Short write-ups of things that broke and how they got fixed. Plain language, real numbers.

SCRN WORK · SCREENER6 OF 8 SHOWN

The projects behind the notes.

Filter by language, sort any column, and hover a row for the preview. Each row opens the full case study.

EOF END OF PAGE · NKESSLING↑ TOP

Type CONTACT, or just write.

hello@example.com
>

STATUS

Open to work from Nov 2026

Replies within one working day

RTM 23:02:08 · UTC 21:02

COLOPHON

Set in Geist, Geist Mono and Doto.

Charts drawn from commit data, live or demo.

No trackers, no cookies.

Create a free website with Framer, the website builder loved by startups, designers and agencies.