Picking Your Tech Stack For Dummies (and the future)
Picking your tech stack in an early stage startup is one of the most important decisions you’ll make. Read on to hear about rules of thumb for making these critical decisions.
Rule 1: When It’s Really Early, Just Use What You Know
If you’re still in prototype, less than 4 developers, do-or-die mode, just use what you know. Unless your product has deep technical requirements the only thing you should optimize for is how fast you personally can code. Don’t try something new. Don’t experiment. Write code.
The reasoning is simple - if you don’t build a viable product there is no future. Any decision that would be made for future considerations is moot and you should fully and exclusively optimize for getting to the next stage of your company’s existence.
Rule 2: Pick Winners
One of the biggest mistakes you can make is tying your startup to a technology that loses mindshare and support. There’s nothing sadder than the day the maintainer of the 100-Star github repo you built your beta with announces they are going to stop supporting their library to focus on school.
In the early days of our company we picked a fairly unknown library to help with data persistence in a corner of our product. We picked a loser for something that required a painful migration to get off of. It was painful.
To pick winners, look for the following simple signs:
It’s a very popular technology
It’s been a very popular technology for more than a couple years
Several major companies use the technology for core parts up their product
Ideally, a public company maintains the technology or formally supports it
Rule 3: Be (Mostly) Boring
There’s a lot to be said and that has been said about picking a boring technology. You only have the ability to be exceptional in a limited number of dimensions and every new fandangled technology is another thing you’ll have to sink energy into as its short-comings become apparent.
Ultimately most product engineering isn’t creating anything novel from a technical standpoint. It’s mostly glueing together technologies and building a sensible set of models and business logic to provide a product. Every time you aren’t boring in a technology pick, you’re likely not optimizing for your company’s best interests.
For example, say you choose to have MyNewLanguage be the basis of your tech stack. Well because it’s new, there’s less winners when it comes to supporting libraries and functionality. So Rule 2 gets harder to do. Even worse, you may have picked a losing language. Now you’re spending time making up for the short-comings of the libraries you can use, or you’re re-building libraries from scratch. Is this really what your young startup can afford to be doing?
Rule 4: …But Don’t Be Too Boring
If you’re too boring it gets hard to recruit. You don’t want trend chasers joining, but good candidates have a healthy want and interest in new technology. Your tech stack should ideally look like a well balanced portfolio, with some extremely unsexy but proven technologies, as well as some emerging winners.
Rule 5: Change Over Time, But Don’t Be Fickle
You won’t pick all winners. As you grow and age, admit what tech isn’t scaling with the business and make an intentional plan to replace it. Do this sparingly, but make sure you do this. Major transitions take time, effort, and energy. You can’t afford to not make transitions over time, but you also can’t afford to make too many, or the wrong ones.