Which programming language should you use? Which web framework? How do you store data? What tech stack should you use at your startup?
A tech stack is a tool. It’s a means to build a product, not an end in and of itself. Do not go with a technology just because it sounds cool or looks fun. Choose a technology that will give you leverage. To do that, you should keep in mind the golden rule of tech stacks:
A good tech stack is one that scales faster than the people required to maintain it.
Your goal is to be able to scale your tech stack to more users, traffic, data, and code by throwing money or hardware, rather than manpower, at the problem. If every time your user base doubles, you can just pay for a few more servers and everything keeps working, you’re in good shape. On the other hand, if you have to double the size of your team, you might need a change. Remember, startups are about people, and although technology is the focus of this chapter, the most important thing about that technology is what kind of leverage it gives to the people using it.
A great example of leverage is the WhatsApp team, which built a tech stack around Erlang that could support 70 million Erlang messages per second, 450 million users, 50 billion messages per day, and 7.2 trillion messages per year.1 And they did all this with a team of just 32 engineers [Hoff 2014].
Of course, the WhatsApp story does not mean everyone should use Erlang. Successful ...