Your Users Don't Care About Your Architecture

You spent three months on microservices. They just want the button to work.

Illustration for Your Users Don't Care About Your Architecture
users-dont-care-architecture The graveyard is full of startups with beautiful architecture and zero traction. 70% of failed startups scaled prematurely. Ship something simple, learn what users want, iterate fast. software architecture, overengineering, startups, microservices, monolith, product-market fit, technical decisions, startup failure

According to the Startup Genome Report, 70% of failed startups scaled prematurely - building for millions of users who never came. You spent three months designing the perfect microservices architecture. Your users just want the button to work.

TL;DR

Ship value first, optimize architecture second. Users care about working features. Engineers care about architecture. Prioritize accordingly.

I've watched this happen more times than I can count. Team spends months on infrastructure. Elaborate CI/CD pipelines. Kubernetes clusters. Event-driven everything. Meanwhile, the login page is slow and the checkout flow has a bug that's been there since launch.

Nobody outside your engineering team will ever know or care about your architecture. That's not cynicism. It's just true.

The Graveyard of Beautiful Designs

There's a quote I keep coming back to: "The graveyard is filled with exquisitely designed startups built to scale to millions of users who never got the slightest bit of traction."

Quibi raised $1.7 billion. They had incredible technology. Streaming infrastructure that could handle massive scale. Mobile-first video that rotated seamlessly between portrait and landscape. Engineering-wise? Impressive stuff.

They lasted about six months.

Instagram started as Burbn—an overcomplicated check-in app with a dozen features nobody used. The founders noticed people only cared about photo sharing. So they stripped everything else and shipped something simple. You know how that ended.

Overengineering Kills Startups

The numbers are brutal. Research shows that 70% of failed startups scaled prematurely—staffing, spending, technology—before achieving product-market fit. Few if any in that study reached 100,000 users.

Seventeen percent of startups fail due to "user-unfriendly products." Another 13% cite "losing focus." Both are symptoms of the same disease: building for imaginary scale instead of actual users.

Here's the thing. Microservices are not necessary in 99% of cases. I know that's controversial. I don't care. A "majestic monolith" will get you further, faster, with less pain. If you succeed enough to need microservices? That's a good problem. You can refactor then.

The Two-Person Microservices Team

I've seen this exact pattern play out:

Two engineers. Ten microservices. Obsessing over performance optimizations for traffic that doesn't exist. Adopting whatever framework is hot on Hacker News that week. Kubernetes cluster for an app that could run on a single VPS.

Meanwhile? No customers. No traction. No product-market fit.

They're not building a product. They're building a resume. Or maybe just avoiding the hard work of talking to users and figuring out what people actually want.

What Users Actually Care About

This isn't complicated:

  • Does it work? Not "does it scale to a million users." Does it work right now, for me, this user, trying to do this thing.
  • Is it fast enough? Not sub-millisecond latency. Just... not annoying.
  • Can I figure it out? Without reading documentation. Without watching a tutorial.

That's it. Everything else is engineering vanity.

Your user doesn't care if you use Rust or PHP. They care if the page loads in 100 milliseconds. If you rewrite from PHP to Rust and it takes 200 milliseconds because you added complexity, you failed. Engineering pride is not a user feature.

I've watched teams spend six months rewriting a "legacy" PHP app in a "modern" stack. The PHP app loaded in 80ms. The new app loaded in 400ms because they added a GraphQL layer, a service mesh, and three microservices. Users noticed. Not in a good way.

Your event-driven architecture with eventual consistency and CQRS? Users don't know what any of those words mean. They know the page loaded or it didn't. The button worked or it didn't.

The Boring Tech Stack

IcePanel's 2025 survey found the biggest challenge in software architecture was keeping documentation up to date. Not scaling. Not performance. Documentation.

You know what's easy to document? Simple systems.

The best teams I've seen use boring technology. PostgreSQL. A monolith. Maybe Redis if they really need caching. They resist the urge to chase every new thing. And they ship. Constantly.

The struggling teams? They're still debating which service mesh to use.

But What About Scale?

Look, I get it. You want to be ready when you blow up. You don't want to rewrite everything later.

Except: you probably won't blow up. Most startups don't. And if you do? You'll have money and time to fix it. That's literally the best possible problem to have.

I've seen companies waste months building microservices architecture with multiple databases, queues, and caches—just to handle traffic that only existed in their imagination. By the time they realized nobody was using the product, the money was gone.

You can't architect your way to product-market fit.

The Complexity Tax

Every architectural decision has costs. Not just upfront costs—ongoing costs.

Simple code is easier to test. Easier to modify. Easier to hand off to the next developer. When you complicate it, the complexity grows exponentially. Your iteration speed tanks. And in a startup, iteration speed is everything.

I've written about this before with the layer tax. Every abstraction has a price. Every service boundary has a price. Every clever pattern has a price. You're not avoiding that price by being smart. You're just paying it later, with interest.

When Architecture Does Matter

I'm not arguing against good architecture. I'm arguing against premature architecture.

There's a moment, if you're lucky, when architectural investment becomes necessary. You've found product-market fit. You have real users generating real load. The monolith is showing genuine strain, not imagined future strain.

That's when you invest in scalability. When you have data about actual bottlenecks. When you can measure the problem you're solving instead of speculating about it.

The teams that succeed split services based on operational pain, not organizational charts or theoretical purity. They instrument first, then optimize what the metrics tell them to optimize. They resist the urge to solve problems they don't have yet.

The difference between good and premature architecture is evidence. If you can't point to specific metrics showing why you need the complexity, you probably don't need it yet. And if you do need it, those metrics will tell you exactly where to invest.

There's also a team dynamics component. Architectural decisions made without user feedback tend to reflect engineer preferences rather than user needs. The push for microservices often comes from developers who want to work on interesting distributed systems problems, not from users experiencing issues. Recognizing that motivation helps distinguish genuine requirements from resume-driven development.

The Overengineering Alarm

Score your architecture decisions. Are you building for users or for your resume?

Overengineering Signals
User-Focused Signals
0Overeng
0User-Focused
Check your signals above

What Actually Matters

Here's what I've learned after watching this pattern for decades:

Ship something. Anything. Get it in front of users. See what happens. You will learn more in one week of real usage than in three months of architecture diagrams.

Use boring tech. The stuff that's been around for years. The stuff with good documentation and Stack Overflow answers. The stuff that just works.

Optimize for change. Not for scale. Not for performance. For the ability to change direction quickly when you learn you were wrong. Because you will be wrong.

Talk to users. More than you want to. Way more than feels comfortable. Architecture debates are often just a way to avoid this.

The Overengineering Alarm

This interactive assessment requires JavaScript. The checklist below is still readable.

Score your architecture decisions. Are you building for users or for your resume?

Overengineering Signals
User-Focused Signals
0 Overengineering Signals
0 User-Focused Signals
Complete the assessment above

The Bottom Line

Your architecture is not your product. Your users don't see your Kubernetes cluster or your event-driven design or your perfectly normalized database schema. They see a thing that either works or doesn't.

The graveyard is full of startups with beautiful architecture and zero traction. Don't join them. Ship something simple. Learn what users want. Iterate fast. The architecture can come later—if you're lucky enough to need it.

Most of you won't need it. And that's fine. A successful monolith beats an elegant microservices ghost town every time.

"The graveyard is full of startups with beautiful architecture and zero traction."

Sources

Technical Strategy Review

Not sure if you're overengineering? Get a reality check from someone who's seen this pattern play out.

Get a Review

Built Something That Survived?

If you've bootstrapped, raised, or pivoted in ways that challenge my assumptions, share your story.

Send a Reply →