Back to blog

Building for Two Clients vs Building for Scale

October 12, 2025·6 min read

I built a POS system that now serves two gaming cafés. Real money, real transactions, real users every day. Here's what I learned.

The Context

When a café can't bill customers, they lose money. Every. Single. Minute.

This isn't a side project where bugs are "learning experiences." This is someone's livelihood depending on my code working correctly.

What I Prioritized

1. Reliability Over Features

I said no to a lot of feature requests. Why? Because every new feature is a potential failure point.

Instead, I focused on: - Offline-first architecture - Works even when internet drops - Local data backup - Nothing gets lost - Fast recovery - System comes back up in seconds

2. Direct Feedback Loops

With 2 clients, I can literally walk to their café and watch them use the system. I did this regularly.

What I learned from watching: - Features I thought were obvious weren't - Workflows I designed "efficiently" were confusing - Speed matters more than I expected

3. Saying No to Customization

Client A wants feature X. Client B wants feature Y differently. The temptation to build custom solutions is real.

I learned to find common ground and build one solution that works for both. Custom code is maintenance nightmare.

The Key Insight

Build for your current scale, but keep the path to the next scale clear.

Don't over-engineer for scale you don't have. But don't paint yourself into a corner either.

Two paying clients taught me more about software engineering than any side project ever could.