architecture One-Way Doors vs Two-Way Doors: A Heuristic for How Much Analysis a Decision Deserves josedacruz, August 23, 2026August 23, 2026 TL;DR: Not every decision deserves the same amount of debate. Some choices are easy to undo if you’re wrong, and some are almost impossible to take back. Sorting a decision into one of those two buckets before you argue about it tells you how much process it actually needs —… Continue Reading
architecture The Rule of Least Power: Why the Boring Technology Choice Usually Wins josedacruz, August 19, 2026August 19, 2026 TL;DR: When you’re picking a tool, a database, or a way of solving a problem, the option with the most features and the most flexibility isn’t automatically the right choice. The Rule of Least Power says: pick the least powerful tool that still gets the job done, because less powerful… Continue Reading
architecture The Distributed Monolith: When Your Microservices Still Deploy as One App josedacruz, August 18, 2026August 18, 2026 TL;DR: Splitting a monolith into microservices doesn’t automatically get you the benefits people promise — independent deploys, one team’s mistake not taking down everyone else, services that scale on their own. If your new services still call each other synchronously, share a database, or all have to deploy together, you’ve… Continue Reading
architecture Hyrum’s Law: Why Every Observable Behavior of Your API Becomes Someone’s Dependency josedacruz, August 17, 2026August 17, 2026 TL;DR: Hyrum’s Law says that if enough people use your software, every observable behavior of it — not just the parts you documented and promised — will eventually become something someone depends on. That means “we never promised that” is not the same as “it’s safe to change.” This post… Continue Reading
architecture The Silent Veto: How One Skeptical Senior Engineer Can Kill Any Architecture Decision josedacruz, August 15, 2026August 15, 2026 TL;DR: Architecture decisions don’t die because someone votes no. They die because one respected engineer looks skeptical, everyone else in the room reads that skepticism as risk, and the proposal quietly stops moving. This “silent veto” has no formal step and shows up on no org chart, but it’s often… Continue Reading
architecture Designing a Rate Limiter That Survives a Flash Sale: Token Bucket vs Sliding Window josedacruz, August 13, 2026August 13, 2026 TL;DR: A simple “count requests per minute” rate limiter looks fine in testing but can let through double the traffic right at the boundary between two time windows — exactly when a flash sale or a bot swarm is most likely to hit you. Token bucket and sliding window algorithms… Continue Reading
architecture The Outbox Pattern: How to Publish Events Without Losing Them josedacruz, August 12, 2026August 12, 2026 TL;DR: When a service needs to save something to its database and tell other services about it at the same time, doing those two things separately can silently lose data. The outbox pattern fixes this by writing the “I need to send this event” note into the same database transaction… Continue Reading
architecture The Bus Factor Test: A Quick Heuristic for Finding Your Team’s Hidden Single Points of Failure josedacruz, August 11, 2026August 11, 2026 TL;DR: The “bus factor” is the number of people who could disappear from your team before a system stops working — and for most teams it’s uncomfortably close to one. Once you find a low bus factor, the real decision isn’t whether to fix it, it’s how: documentation works well… Continue Reading
architecture Normalization of Deviance: How ‘It Worked Last Time’ Becomes Your Next Outage josedacruz, August 11, 2026August 11, 2026 TL;DR: Normalization of deviance is what happens when a team skips a safety step, nothing bad happens, and the skip quietly becomes “how we do things” until it eventually causes a real outage. This is a practical playbook for catching that drift early — name shortcuts out loud, track near… Continue Reading
architecture Goodhart’s Law: Why Your Engineering Metrics Stop Working the Moment You Target Them josedacruz, August 9, 2026August 9, 2026 TL;DR: Any metric you turn into a target stops being a reliable measure, because people (reasonably) start optimizing for the number instead of the thing it was supposed to represent. This is called Goodhart’s Law, and it quietly wrecks engineering metrics all the time. The fix isn’t to stop measuring… Continue Reading