Hook
Technical decision making is where most software money is won or lost. I have watched founders spend six figures on technology that did not fit their business. I have also seen a small team pick the right stack and ship a working product in three weeks. The difference between those two outcomes is rarely about the technology itself. It is about how the decision got made.
Over 16 years and more than 250 projects, I have built a framework for evaluating technical decisions. Not a checklist for developers. A thinking tool for the people writing the checks and running the company. The ones who need to ask the right questions without necessarily understanding every answer at the implementation level.
This is the same framework I use as a Fractional CTO when clients bring me in to untangle their technology strategy. I am sharing it here because too many founders still rely on whoever talks the loudest in the room.
TL;DR summary
- Most bad technical decisions come from optimizing for the wrong variable (usually cost or speed alone).
- The framework has five filters: business alignment, team capability, total cost of ownership, reversibility, and time-to-value.
- Run every significant technology choice through all five before committing.
- Real examples from GigEasy, Cuez, bolttech, and Imohub show how this works in practice.
- You do not need to be technical to use this. You need to ask better questions.
Table of contents
- Why technical decisions fail
- The five-filter framework
- Filter 1: Business alignment
- Filter 2: Team capability
- Filter 3: Total cost of ownership
- Filter 4: Reversibility
- Filter 5: Time-to-value
- Putting it together: real project examples
- Common mistakes I still see
- How to use this without a technical background
- Reflecting on what 16 years taught me
- FAQ
Why technical decisions fail
After sitting in many technology evaluation meetings, I can tell you: most bad decisions do not come from picking the "wrong" technology. They come from optimizing for the wrong thing.
Patterns I see over and over:
The shiny object. A developer reads a blog post about a new framework. It looks exciting. The team adopts it before asking whether it solves a problem they actually have. Six months later, they cannot hire anyone who knows it, and the original developer has left.
The cost trap. A founder picks the cheapest option for every layer of the stack. The initial build comes in under budget. Then the maintenance costs start. Then the scaling costs. Then the rewrite costs. The "cheap" choice ends up being the most expensive one they made.
The resume-driven decision. An engineer wants to learn Kubernetes, so suddenly the two-person SaaS app "needs" container orchestration (a system that automatically manages and coordinates software running across multiple servers). I have seen infrastructure bills triple because someone wanted a line item on a LinkedIn profile.
The copy-paste. "Netflix uses this, so we should too." Netflix has tens of thousands of engineers. You have four. Their problems are not your problems.
None of these are about technology being bad. They are about decision-making process being absent.
The five-filter framework
Every technical decision I evaluate goes through five filters. Order matters. If a choice fails an early filter, there is no point evaluating the rest.
Think of it like hiring. You would not negotiate salary with a candidate who cannot do the job. Same idea here: start with the most important question first.
| Filter | Core question |
|---|---|
| 1. Business alignment | Does this support what the business actually needs to accomplish? |
| 2. Team capability | Can our current team (or a realistic hire) build and maintain this? |
| 3. Total cost of ownership | What does this really cost over 2-3 years, not just the initial build? |
| 4. Reversibility | If we are wrong, how hard is it to change course? |
| 5. Time-to-value | How quickly does this start generating returns? |
Let me walk through each one.
Filter 1: Business alignment
This sounds obvious, but it is the filter most teams skip. They jump straight to comparing features, benchmarks, and GitHub stars (a popularity metric for open-source software).
The question is not "which technology is best?" It is "which technology is best for what we are trying to do in the next 12-18 months?"
When I joined the Cuez project, a live TV production platform based in Belgium, the existing codebase had accumulated years of technical decisions that made sense individually but did not align with where the product was heading. The API (a way for different software systems to communicate) response times had ballooned to 3 seconds. That is an eternity for live television production, where milliseconds affect the broadcast.
The fix was not adopting a new framework. It was removing unused libraries, replacing custom-built code with framework features that already existed, and tuning database queries. Result: 3s down to 300ms — a 10x improvement, plus around 40% infrastructure cost reduction. The technology choices were boring. The business outcome was dramatic.
Questions to ask your technical team:
- What specific business goal does this technology choice support?
- What happens to our product roadmap if we pick option A vs option B?
- Are we solving a problem we have today, or one we might have in two years?
- If our business model changes direction next quarter, does this choice still work?
Filter 2: Team capability
The best technology in the world is worthless if nobody on your team can use it well. And "well" is doing heavy lifting in that sentence. Anyone can write a basic app in any language. Writing production software that handles real users, real data, and real edge cases requires depth.
At bolttech, a $1B+ unicorn, the engineering decisions had to account for distributed teams across multiple countries. Picking a niche framework that only three people in Singapore understood would have been a disaster. The technology choices needed to match the talent pool available across all the markets where the company operated. That is one reason the platform was built on NestJS, React, MongoDB, and Redis — known stacks with deep hiring pools.
I think about team capability in three layers.
Current skills. What does the team already know well? Switching an entire team to a new language or framework has a real cost. I have watched a 6-week project turn into a 6-month project because the team was learning Go while trying to ship a product.
Hiring pipeline. Can you find and afford developers who know this technology? Some frameworks have small communities. When your lead developer leaves (and eventually, they will), can you replace them? If you are choosing between two web frameworks, the size and health of each community should factor into your decision. The annual Stack Overflow Developer Survey is a useful sanity check on which technologies still have active hiring pools.
Maintenance burden. Who maintains this in year two and year three? The developer who chose it might not be around. Does the technology have good documentation? Active community support? Regular security updates?
Questions to ask:
- How many developers on our team have production experience with this?
- What is the hiring market like for this skill set in our budget range?
- If our lead developer leaves tomorrow, how long until a replacement is productive?
- What does the learning curve look like, and can we afford the slowdown?
Filter 3: Total cost of ownership
This is where I see founders get burned the most. They compare the price of building something and ignore every cost that comes after.
Total cost of ownership (TCO) for a technology decision includes:
- Build cost. Developer time, design, testing, deployment.
- Infrastructure cost. Hosting, databases, third-party services, CDNs (content delivery networks that serve your website from servers closer to your users).
- Maintenance cost. Bug fixes, security patches, dependency updates, monitoring.
- Scaling cost. What happens to your monthly bill when traffic doubles? When data grows 10x?
- Opportunity cost. What could your team be building instead of maintaining this choice?
At Imohub, where I served as CTO, I had to make infrastructure decisions that would scale with property listing data. The initial build cost was one variable. Real estate platforms accumulate massive amounts of data: images, documents, search indices, geolocation. A hosting choice that looked cheap at 10,000 listings could become brutal at 500,000. The platform shipped on Next.js, React, Laravel, MongoDB, Meilisearch, AWS, and Docker — 120k+ properties indexed, sub-0.5s query response, and a 70% reduction in infrastructure cost compared to the prior architecture.
I ran the numbers forward. Not "what does this cost today?" but "what does this cost at 5x and 10x current volume?" That analysis changed several of my initial assumptions.
A simple TCO exercise you can do today:
Take any technology choice your team is evaluating. Ask them to estimate costs at three scales:
| Current scale | 3x scale | 10x scale | |
|---|---|---|---|
| Monthly infrastructure | $ | $ | $ |
| Developer hours for maintenance | hrs/month | hrs/month | hrs/month |
| Third-party service fees | $ | $ | $ |
If the 10x column makes you uncomfortable, that is worth a conversation. You may not reach 10x, but you want to know the trajectory before you are locked in.
Filter 4: Reversibility
This one took me years to appreciate. Early in my career, I treated every technical decision like it was permanent. It made decision-making slow and stressful. Now I categorize decisions differently.
One-way doors are decisions that are expensive or impossible to reverse. Choosing your primary programming language. Picking a database architecture. Signing a three-year enterprise contract. These deserve weeks of evaluation. Jeff Bezos popularized this language in his 2015 shareholder letter, and the distinction holds up.
Two-way doors are decisions you can change without major pain. Picking a CSS framework. Choosing a project management tool. Selecting a logging service. These deserve hours, not weeks.
The problem is that most teams treat two-way doors like one-way doors. They spend three weeks evaluating which analytics tool to use when switching analytics tools takes an afternoon. Meanwhile, they spend three days picking a database that will take 18 months to migrate away from.
When I built the GigEasy MVP, a fintech platform backed by Barclays, Bain Capital, and Zean Capital Partners, speed mattered. I had three weeks to ship. So I was deliberate about which decisions were reversible and which were not. The database schema and API contracts got careful thought. The frontend component library? I picked one that was good enough and moved on. It could always be swapped later, and that flexibility let the project hit the deadline. Stack: Laravel, React, AWS, PostgreSQL, Redis, Docker, Pulumi.
How to assess reversibility:
- If this does not work out, what does it take to switch? (Time, money, team effort)
- Are we locked into a contract or vendor?
- Does this choice affect our data structure in ways that are hard to undo?
- Can we run a small pilot before committing fully?
If switching costs are low, make the decision quickly and move on. Save your deliberation budget for the irreversible choices.
Filter 5: Time-to-value
How long until this technology choice starts producing results? Not "how long until it is built" but "how long until the business benefits?"
This filter catches a specific failure mode: over-engineering. Teams build the perfect system that takes 9 months to launch when a simpler system could have shipped in 6 weeks and started generating revenue (or data, or user feedback) immediately. Harvard Business Review's research on speed-to-market consistently shows that early-stage products win or lose on iteration speed, not on technical sophistication.
The GigEasy project is the clearest example from my experience. The investors wanted to validate a market hypothesis. They did not need a system that could handle a million transactions. They needed something functional that real users could test. I shipped the MVP in three weeks against a typical 10-week cycle. That speed was not because of cut corners. It was because every technical decision was filtered through "does this help the founder learn something from real users faster?"
If I had built for scale from day one, months would have gone into infrastructure that might never be needed. The startup would have burned cash on theoretical problems instead of getting real feedback from the market.
For a deeper look at how this applies to custom web application development, the same principle holds: build for the stage you are in, not the stage you hope to reach.
Questions to ask:
- When will real users interact with this?
- What is the minimum version that produces useful business data?
- Are we building for today's actual needs or next year's hypothetical ones?
- Can we ship in phases instead of one big launch?
Putting it together: real project examples
Let me show you how the five filters played out in real projects.
GigEasy: three-week MVP
Context: Fintech startup backed by Barclays, Bain Capital, and Zean Capital Partners. Needed a working product to validate a market hypothesis. Budget tight. Timeline tighter.
| Filter | Assessment |
|---|---|
| Business alignment | Validate market fast. Every decision measured against "does this help launch in 3 weeks?" |
| Team capability | Small team, so I picked technologies I already knew deeply. No learning curves. |
| Total cost of ownership | Low initial cost mattered. I also picked technologies that would not require a rewrite at the next stage. |
| Reversibility | Deliberately chose reversible options where possible. Frontend choices were two-way doors. Data model was a one-way door and got extra attention. |
| Time-to-value | Three weeks. That was the constraint that shaped everything else. |
Result: shipped on time. Stack: Laravel for the backend (because I move fast in it), React for the frontend (because the hiring pool is enormous), AWS, PostgreSQL, Redis, Docker, Pulumi. Pragmatic, not flashy. 70% time saved vs a typical 10-week cycle.
Cuez: performance rescue
Context: Live TV production platform in Belgium. API responses taking 3 seconds. Users and broadcast workflows suffering.
| Filter | Assessment |
|---|---|
| Business alignment | Speed was the product requirement. Live TV cannot wait 3 seconds for data. |
| Team capability | Existing team knew the codebase. No new technology needed; better use of what was already in place. |
| Total cost of ownership | Fixing the existing system was far cheaper than rebuilding. The audit and optimization cost a fraction of a rewrite. |
| Reversibility | Low risk. Improving existing code, not replacing it. Each optimization could be rolled back if it caused issues. |
| Time-to-value | Immediate. Each optimization delivered measurable improvement the day it shipped. |
Result: API response time went from 3 seconds to 300ms. Roughly 40% infrastructure cost reduction. No new frameworks, no rewrites. Methodical engineering: removing unused libraries, replacing custom code with framework built-ins, tuning queries.
bolttech: payment orchestration at scale
Context: $1B+ unicorn. 40+ payment providers to integrate across 15+ international markets. 99.9% uptime expected. Backed by Tokio Marine and MetLife Next Gen Ventures.
| Filter | Assessment |
|---|---|
| Business alignment | The platform's growth depended on adding payment providers fast without breaking existing markets. |
| Team capability | Distributed engineering across multiple countries. Stack had to be widely known. |
| Total cost of ownership | Reliability over cleverness. Cost of downtime far exceeded any infrastructure savings from exotic choices. |
| Reversibility | Provider integrations were modular by design, so individual choices were reversible. The orchestration layer itself was a one-way door — that got the most attention. |
| Time-to-value | Each integration shipped on a tight cycle. Architecture had to support parallel work without conflicts. |
Result: 40+ payment providers integrated, 15+ new international markets, 99.9% uptime, zero post-launch critical bugs. Stack: NestJS, React, MongoDB, Redis, TypeScript.
Imohub: scaling a real estate platform
Context: CTO role at a real estate technology company. Platform needed to handle growing property data while keeping search fast and costs manageable.
| Filter | Assessment |
|---|---|
| Business alignment | Search speed and data capacity directly affected user experience and conversion. |
| Team capability | Small team, so technology choices needed to be well-documented and widely supported. |
| Total cost of ownership | The 10x exercise mattered here. Property data grows continuously. I modeled costs at 5x and 10x listing volume. |
| Reversibility | Database and search infrastructure were one-way doors. I piloted extensively before committing. |
| Time-to-value | Phased rollout. Core search improvements shipped first, advanced features following. |
Result: 120k+ properties indexed, sub-0.5s query response, 70% infrastructure cost reduction, Top 3 Google rankings. Costs stayed predictable because the math was done upfront. Stack: Next.js, React, Laravel, MongoDB, Meilisearch, AWS, Docker.
Common mistakes I still see
After 250+ projects, certain patterns keep repeating. If you recognize any of these, your decision-making process needs structure.
Letting the loudest voice win
Technical decisions should not be popularity contests. I have been in rooms where a senior engineer passionately advocates for a technology, and nobody pushes back because they do not want to challenge the expert. Run it through the five filters instead. The framework does not care about seniority or enthusiasm.
Confusing complexity with quality
More sophisticated does not mean better. Some of the most effective systems I have built used boring, well-understood technology. The GigEasy MVP did not use microservices, Kubernetes, or a dozen cloud services. It used a monolithic application, a single database, and managed hosting. It worked. It shipped. It validated the business.
Skipping the "what if we are wrong?" conversation
Every technology evaluation should include the question: "If this turns out to be the wrong choice, what happens?" Not pessimism. Realism. I have been wrong plenty of times in 16 years. The projects that survived my mistakes were the ones where I had thought about reversibility upfront.
Evaluating technology in isolation
A database is not good or bad. It is good or bad for your specific use case, team, budget, and timeline. PostgreSQL is excellent for many applications. It is a poor choice if your team only knows MongoDB and you need to ship in two weeks. Context matters more than benchmarks.
Ignoring the humans
Technology decisions are people decisions. Can your team use it? Can you hire for it? Will it frustrate your developers so much they quit? I have seen companies lose their best engineers because leadership mandated a stack that nobody enjoyed working with. Developer experience is not a luxury. It is a retention strategy. For more on what that costs, see the real cost of technical debt.
How to use this without a technical background
You do not need to understand the technology to use this framework. You need to ask the right questions and recognize when you are not getting real answers.
When your CTO or lead developer proposes a technology choice, ask these five questions:
- "How does this connect to our business goals for the next 12 months?"
- "Who on the team has built something real with this before?"
- "What does this cost at 3x and 10x current scale, including maintenance?"
- "If this does not work out, what does it take to switch?"
- "When do we start seeing results from this?"
If the answers are vague, push back. "It is the industry standard" is not a business case. "Everyone is using it" is not a team capability assessment. "It will scale" is not a cost analysis.
Good technical leaders can answer these questions in plain language. If someone cannot explain why a technology choice makes sense for your business without resorting to jargon, that is a red flag.
If you do not have a technical leader and need help evaluating these decisions, that is exactly what a Fractional CTO engagement at $4,500/mo (Advisory) or $8,500/mo (full) is for. I spend the first 90 days of every engagement building exactly this kind of decision-making structure with the founding team. For lighter engagements where the issue is execution rather than strategy, Applications at $3,499/mo covers ongoing engineering work.
Reflecting on what 16 years taught me
The longer I do this work, the more I trust simple frameworks over clever ones. The five filters above did not show up in my head fully formed. They are scar tissue from real mistakes — mine and other people's — pressed into something usable.
The single most important shift I have made over 16 years: I stopped trying to pick the best technology and started trying to pick the most appropriate one. "Best" is a benchmark conversation. "Appropriate" is a business conversation. The first one ends in a Twitter argument. The second one ships product.
Engineering with an MBA habit: I run every significant decision through ROI math. Not to pretend the spreadsheet is the answer, but to force the conversation onto numbers we can argue about. "I prefer this database" is not a decision. "This database costs us 40 fewer engineer-hours per quarter and lets us hire from a 10x larger pool" is.
If I have any wisdom to pass on after 16 years and 250+ projects, it is this: in 16 years I have never ghosted a client or missed a launch date, and the reason is not heroic late nights. It is filtering decisions early, choosing technology I know I can deliver in, and saying no to anything that fails the framework. Boring discipline. Predictable outcomes.
FAQ
Do I need to be technical to evaluate technology decisions?
No. You need to understand your business goals, budget constraints, and timeline. The five-filter framework translates technical choices into business questions. Your role is to make sure the technical team is answering the right questions, not to evaluate the technology yourself.
How long should a major technical decision take?
It depends on reversibility. One-way doors (database architecture, primary language, core infrastructure) deserve 1-3 weeks of evaluation. Two-way doors (frontend libraries, development tools, analytics providers) should take a day or two at most. If your team is spending three weeks picking a CSS framework, they are misallocating their decision-making energy.
What is the biggest technical decision mistake you have seen?
Building for scale before validating the product. I have watched teams spend 6 months building infrastructure to handle millions of users for a product that never got past 500. Validate the business first with technology that is good enough, then invest in scaling what is proven to work.
Should cost always be the primary factor?
Rarely. Cost is one of five filters, and it is filter number three for a reason. A cheap choice that does not align with business goals or cannot be maintained by your team is the most expensive decision you will make. Total cost of ownership over 2-3 years matters more than initial build cost.
When should I bring in outside help for technical decisions?
When you do not have a senior technical leader on the team. When internal opinions are deadlocked. When you are making a large irreversible commitment (new platform, major rewrite, significant infrastructure change). When the cost of getting it wrong is high enough that an independent perspective is worth the investment.
How does this framework apply to choosing between building custom software and buying off-the-shelf?
Run it through the five filters. Business alignment: does an off-the-shelf tool actually do what you need, or will you bend your process to fit the software? Team capability: do you have people who can customize or build on it? Total cost: what do licenses, customization, and integration cost over three years? Reversibility: how locked in are you to this vendor? Time-to-value: can you be up and running faster with a ready-made solution? For a more detailed comparison, see custom web app development.
How do you apply this to AI tooling decisions in 2026?
Same five filters. Most AI decisions today are two-way doors at the tool layer (which model, which vendor) and one-way doors at the data layer (how you ingest, embed, and store proprietary data). Pick fast on the tools, slow on the data. The model you call this quarter will not be the model you call next year. The way you structured your retrieval pipeline absolutely will be. Self-initiated AI work I have done on Instill follows this exact split: slow decisions on schemas and protocol design, fast decisions on which model to route to.
Next steps
If you are facing a technical decision and want a structured evaluation, I am happy to talk through it. I have done this for startups, mid-market companies, and enterprise teams. The framework scales because the questions stay the same.
Let's talk about your technology decisions, or learn more about my background and the projects that shaped this framework.
Related reading:
- Fractional CTO — $4,500/mo (Advisory), $8,500/mo (full)
- Applications — monthly subscription from $3,499/mo
- GigEasy MVP delivery — investor-ready MVP in 3 weeks
- Cuez API optimization case study — 10x faster API
- Imohub case study — 120k+ properties, <0.5s query response
- bolttech payment integration — 40+ payment providers, $1B+ unicorn
- The real cost of technical debt
- Scalable web solutions for growing businesses