Be BORING when choosing your tech stack

Whenever you are starting a new project, either in a new startup or a new solution for your current employer, always try to be boring as much as possible when choosing the tech stack.

TL;DR

Technology

Technologies tend to get better over time. The longer the technology is in the market, the higher the probability that it will be more stable. Let's take python, for example, it has been around for around 30 years. It has hundreds of thousands of good packages. Hundreds of frameworks and a lot of support on Stack Overflow and GitHub. So whenever I am going to start a new project, it will be on top of my choices.

Product

The final goal of any software project is to provide a product providing a solution for a certain problem. So we should not deviate from that goal. Building the coolest piece of software without solving the main issue is not considered progress, and it's highly likely to be replaced with one that actually solves it. The main factor in measuring the success of a product is its functionality. No user cares about what is the tech stack or the programming languages behind it. Always remember the main goal.

Developers

Our goal is to solve problems. Chasing trends and use them whenever we can to pad our resumes will not the end goal, and it's not advised. And there is no shame in using an old and stable solution to provide the functionality needed.

Takeouts

1- New technology choices come with a great deal of baggage.

2- Always keep your solutions Stupid Simple.

3- It’s important to master the tools you choose. Make sure you do that.

4- Progress happens when delivering working solutions.

Thanks