Freeze interfaces, add characterization tests, and refactor in microscopic steps. Practice extracting seams, strangling dependencies, and naming intent without breaking behavior. This discipline builds courage for production changes, because you’ve rehearsed the smallest reversible moves that make future improvement cheap, boring, and reliably safe.
Choose a small, realistic data set and a hot path. Measure before changing anything, then try a single tweak and remeasure. You’ll develop restraint, an eye for costs, and a habit of keeping instrumentation alive so performance stays visible rather than surprising everyone months later.
Practice structured retries, idempotency, and clear messages while a countdown timer ticks. Simulate partial failures and missing configuration. By rehearsing calm, predictable responses, you’ll reduce incident stress, shorten recovery time, and teach systems to fail loudly yet helpfully, accelerating collaboration with operations and support.