A great product or solution needs to start with a solid foundation.
And choosing the right tech stack to start with can play a big part in the success of a startup’s first product and longer term success.
The problem is, there’s a huge number of programming languages out there and it can be daunting to try and pick which ones will suit a startup best. Throw in the mix that different languages are usually needed for client side vs server side use and it can be a tricky task trying to put together the ideal tech stack.
So let’s take a look at what goes into creating a tech stack as well as what kind of tech stacks some of today’s most popular and successful tech companies use. Because Uber, Facebook, and Airbnb were all startups once too.
What makes up a tech stack?
A technology stack combines the software products and programming languages used to create an application or a website and comprises both the frontend (client side) and backend (server side) technologies.
Tech stacks will differ based on what is being developed. So a tech stack for web development will look different to one for mobile applications.
How should I choose the right stack?
When it comes to tech stacks there is no one size fits all. Instead, a variety of factors need to be considered that will determine what will suit a startup best rather than just imitating the tech stack of an unrelated company.
Some tech stacks are better suited to different areas either due to technical limitations or through having a particularly strong community. For example, Spark/Hadoop is well suited to distributed computing, Python is strong for scientific computing, and NodeJS is great if you need to write isomorphic code that runs on both server and browser.
Choosing the best tech stack should be based on the product that is being developed and the team that will be developing it. By looking at similar products and how they were built and talking to developers about their expertise across different languages, it’s possible to piece together what programming languages and frameworks will work best.
Other factors to consider are how quickly the first product needs to be launched, what kind of staffing resources are available, and whether a dedicated team will need to be hired.
Some well-known tech stacks
You should never go with a tech stack just because a well known company uses it, but the following gives you an indication of the types of tech stacks used by some of the most successful tech companies.
Programming Languages: Python, Java, Go, Objective-C
Framework: Node.js, Apache Thrift
Databases: MySQL. PostgreSQL, MongoDB, Redis
Programming Languages: PHP, GraphQL, Hack
Databases: Cassandra, RocksDB, Beringei, Memcached
Databases: MySQL, Amazon RDS, Hadoop
One thing you’ll notice is that while there are some similarities between the stacks used, each company’s choices also differ significantly. Which serves as a good reminder that the stack should suit the product and the company’s area of focus. And also that there’s more than one way to skin a cat.
Don’t try and reinvent the wheel
There’s no point telling developers to go and learn a brand new language from scratch just because you’ve heard it’s the latest and greatest new tech. Instead go with proven technologies. This will benefit the startup as it grows and needs more developers. It’s important to be able to find quality developers that won’t be crazily expensive in your startup’s chosen tech.
It’s also important to remember that you’re not trying to reinvent the wheel here. For a startup, acquiring customers is always much more important than being a guinea pig for the newest or most hyped programming language. A great product or solution needs to start with a solid foundation.