Choosing Boring Technology On Purpose
09 Jul 2026Every team has a fixed budget of “new and risky” it can spend before something breaks in a way nobody on the team has debugged before. Spend it on your actual differentiator, not on your database.
The innovation budget, concretely
You don’t have infinite attention. Every unfamiliar technology in your stack is something the team has to learn, has thinner community knowledge for, and will hit an undocumented edge case in eventually. If your product’s value is in a novel recommendation algorithm, that’s where the budget goes. The job queue underneath it should be the most boring, well-understood option available, because nobody is paying you for a novel job queue.
What “boring” actually buys you
Boring technology has had its edge cases found by someone else, years ago, and the fix is already a Stack Overflow answer. Postgres has been run at your scale by thousands of teams before you. When it misbehaves, the failure mode is documented, the error message is googleable, and there’s a decent chance someone on your team has hit it before, somewhere else.
New technology’s failure modes are still being discovered — sometimes by you, in production, at 2am, which is a much more expensive way to learn them.
| Boring | New | |
|---|---|---|
| Failure modes | Documented, known | Still being discovered |
| Hiring | Easy to find experience | Small pool, often none |
| Debugging | Stack Overflow has your error | You’re filing the GitHub issue |
| Differentiation | None — that’s the point | Maybe, if it’s your core bet |
This is not “never use new things”
Boring-by-default doesn’t mean frozen-in-2015. It means new technology needs to earn its place with a specific, concrete advantage for your specific problem — not “it’s what people are excited about.” If a new database genuinely solves a scaling problem Postgres can’t, that’s a real reason. “It looked interesting in a conference talk” is not.
Ask the question directly, for anything you’re considering: what does this get us that the boring option doesn’t, for the exact problem we have right now? If you can’t answer that in one sentence, you don’t have a reason, you have a preference, and preferences are how six-month projects become the thing three people know how to operate.
Where teams get this backwards
The common failure is spending the innovation budget on infrastructure and defaulting to boring on the product. That’s inverted. Your job queue, your database, your deploy pipeline — these are solved problems, and solving them again doesn’t make your product better. Meanwhile the actual product decision, the thing users would notice, gets the safe, unoriginal choice because nobody wanted to “risk” the infrastructure.
Flip it: infrastructure should be the least interesting decision you make. The interesting, risky, differentiated bets belong in the part of the system that’s actually your product.
A practical filter before adopting anything new
Before adding a new piece of infrastructure, ask three questions:
- Does a boring, already-in-our-stack option actually fail to solve this, or does it just feel less exciting?
- If this breaks at 2am, who on the team can debug it, and how many people in the world have hit this exact failure before?
- Is this new thing core to what we sell, or is it plumbing?
If it’s plumbing and the boring option works, take the boring option. You’re not being unambitious — you’re saving the ambition for where it actually pays off.