Which Technology for Your Application?

You’re having a chat with a technical partner and something like this comes up:

“We’ll set you up with React with Redux to reach out to a Python and Flask based API which was connected to gRPC microservices running on a Kubernetes cluster”.

Whether you understand what any of that means or not, it’s almost assuredly overkill for your MVP application. That kind of a setup is meant to scale to tens of thousands of daily active users; a nice goal – but a massive case of overbuilding for the vast majority of startups. The best way to develop software is through a process of progressive elaboration; start with a simple technology, get it working, add complexity as needed.

Over-engineering is a costly trap you can easily fall into. Similarly, be wary of technical vendors who are adamant about specific technologies. Shoehorning your project into something they’re comfortable with might not be a wise approach.

We believe the best software is designed around the problems you need to solve; the specifics of what platform or language it’s built on is a secondary concern. Pushing too hard on one solution to solve all problems is often a sign of a high volume firm (cranking out tons of work following the same patterns) or just a lack of deep knowledge in building software.