When to Build vs Buy
Every engineering leader faces this question constantly. Here's my framework for thinking about it.
Every engineering leader faces this question constantly. Here's my framework for thinking about it.

"Should we build this ourselves or use an existing solution?"
I get this question constantly. From engineers who want to build. From finance who wants to save money. From product who just wants it done.
The answer is always "it depends." But there's a framework for thinking about it.
Controversial take for an engineer, but: your default should be to buy/use existing solutions.
Why?
Building is expensive. Not just initial development — maintenance, bug fixes, upgrades, documentation, on-call. Every custom system becomes technical debt to manage.
Building takes focus. Every custom system you build is attention not spent on your core product.
You're probably not special. That problem you think is unique? Hundreds of companies have solved it. Their solution is probably better than what you'd build.
Time matters. Buying gets you to market faster.
Start with buy. Only build when there's a compelling reason.
That said, sometimes building is the right call.
If it's central to your competitive advantage, own it.
These weren't commodities for them — they were the product.
But be honest. Most things you think are differentiators aren't. "We do CRM slightly differently" doesn't justify building a CRM.
Sometimes the market doesn't have what you need:
But verify this. Actually evaluate options before concluding nothing fits. "I couldn't find anything" often means "I didn't look very hard."
Sometimes integrating an off-the-shelf solution is harder than building:
Calculate the real cost of integration, not just the sticker price.
If the vendor disappears, what happens?
For mission-critical systems with unstable vendors, building might be safer.
Authentication. Payments. Email. Logging. Monitoring.
These are solved problems. Thousands of companies use the same solutions. You're not going to build better than Auth0 or Stripe or Datadog with a team of 5.
If it's not what your team is good at, don't build it.
Building a custom database when you're a product team? Bad idea. Use Postgres.
Building custom ML infrastructure when you're an e-commerce company? Bad idea. Use a platform.
If you need something next month, buy it. You can always migrate later if it doesn't work out.
The cost of delay often exceeds the cost of imperfect fit.
Calculate real costs:
Building:
Buying:
Often, buying is cheaper even when the sticker price looks high.
Sometimes the answer is neither pure build nor pure buy:
Buy and customize. Start with a vendor, build custom pieces on top.
Open source and host. Get the software free, pay for hosting/ops.
Build the glue. Buy commodities, build the integration layer.
This is often the best approach. Use existing solutions where possible, build only the pieces that truly differentiate.
For any build vs buy decision:
Is this core to our competitive advantage? If yes, lean build. If no, lean buy.
Does a good solution exist? Actually evaluate. Talk to vendors. Try free trials.
What's the real cost of each? Including maintenance, opportunity cost, risk.
What's the timeline pressure? If urgent, buy.
What's the team's expertise? Don't build what you don't know.
What's the vendor risk? Stability, lock-in, pricing power.
Score each option. The right answer usually becomes clear.
Engineers want to build everything. It's more fun. It's more interesting. But it's often not the right business decision.
Underestimating maintenance. Building seems cheap until you're maintaining it for years.
Overestimating uniqueness. "Our needs are special" is usually wrong.
Ignoring vendor risk. That startup with the great product might not exist next year.
Not calculating opportunity cost. What else could those engineers be doing?
When someone proposes building something, I ask:
If they can answer all of these compellingly, build. Otherwise, buy.
Building is seductive. There's satisfaction in crafting your own solution. But for most problems, someone else has already solved it better than you will. Use their work. Save your building energy for what truly matters.