Splitting a god-module without a big-bang rewrite
A billing module doing three jobs at once, and the branch-by-abstraction path we used to take it apart one seam at a time.
// engineering log — updated continuously
A running log of what actually happened when we refactored, tested, shipped and occasionally broke real systems — written down before we forget the details.
A billing module doing three jobs at once, and the branch-by-abstraction path we used to take it apart one seam at a time.
Why we write tests against what the code actually does before we change it — not what we wish it did.
A retrospective on the slowest part of a six-month migration — and it wasn't the code.
A "readable" refactor turned one join into a loop — here's the query-count test we added so it can't happen quietly again.
Why every flag we ship now gets an owner and a removal date at creation time, not as a future cleanup task.
A small template change that made incident reviews more honest, not less accountable.
Route by route, over eighteen months — how we replaced a service too big to characterize and too critical to pause.
What we found when we stopped quarantining flaky tests and started reading them instead.
The cleanest place to introduce an interface was already sitting in the codebase — we just weren't looking there first.
We guessed wrong about which optimizations would matter — here's what actually moved the number and what didn't.
Ninety-plus lint rules, a third with no one left who could explain them — how we audited and cut the list down.
Splitting "must fix" from "worth knowing" in every review comment changed what people learned, not just what merged.
Three weeks of logging divergences between old and new pricing logic before we let the new path touch a real charge.
Boring on purpose: the contract tests we add at every seam to catch two sides silently drifting apart.
Our module boundaries kept dissolving until we drew them around data ownership first and code second.
A budget nobody owned drifted for two quarters — splitting it across the request path made regressions traceable again.
After one bad migration, every schema change now goes through the same review and dry-run as application code.
How a private "don't relearn this the hard way" file turned into the log you're reading now.
No notes match that search. Try a different term or clear the filters.
// colophon
Relev3n Notes isn't a polished engineering blog. It's the log a team keeps so the next refactor, migration or incident doesn't start from zero. Every entry comes from a real change, written down close enough to the event that the details are still true.
We publish the parts that generalize — the sequencing, the tests that caught something, the assumption that turned out wrong — and leave out anything specific to our own stack that wouldn't help you.
// one email when a new note goes up — no digest, no drip sequence