Technology stack — How to choose the right one to build your product.
If you’re in the tech sector, you’ve probably heard the phrase ‘tech stack’ before. Like many pieces of jargon in our field, it’s not clear what that phrase means. Understanding your technology stack, however, is important for the success of your product, whether it’s an app or an entire ecosystem.
Let’s take a look at tech stacks and talk about why understanding your technology stack is so important.
What is a tech stack?
A technology stack is a crucial part of developing any web or mobile application. People refer to the term when speaking of the combination of programming languages and software underneath a development project in question.
Picking the right combination of underlying development tools is very important in the early stages of a project. When building a skyscraper, you don’t start with the marble facade or the fountain in the lobby. You start with a deep foundation and girders to hang everything else on. Your tech stack is like this skeleton and you should consider hiring a cloud architect to help ensure your stack does not fall apart.
Finally, you should also consider the software you’re using in the development process. Starting with the right efficiency-focused software will ensure your processes are integrated and everyone is working on the same platform. Choose the best time tracking app and project management tools as a start. Jira, Trello, Asana are one of the best project management tools currently in the industry.
The more complex your project is and the more developers involved, the more likely you are to need a project management software early on to get everyone on the same page.
When everything goes well, your user has no idea what’s in your tech stack. Just like a passerby won’t know how many girders are in your skyscraper or how deep the foundation is, those elements are hidden. They just know that it works.
Why your technology stack is important
So your app is built on your tech stack. It sounds important, but why is understanding it such a big deal? Trying to learn about it can be intimidating, especially if you’re an ideas person and not a developer.
But technology used in web application development can have a big effect on how your app works and how it will behave in the future. For example, some server systems are made for high-read operations but are less efficient when it comes to high-write traffic. That’s an important thing to know if you’re transitioning your app from local file storage to cloud file storage.
Your tech stack can also influence the scalability of your product. Certain stacks will better serve different projects. Because so many different combinations are possible for your tech stack, it’s difficult (if not impossible) to generalize. But getting familiar with the strengths and weaknesses of your tech stack before you start building your product will help you take advantage of the strengths and mitigate the weaknesses.
That’s a point worth reiterating: you should make decisions about your tech stack before you start major production work on your app. While making significant changes in your stack once you realize that you need something different is possible, it’s difficult. In some cases, it’ll involve a huge investment of time and money.
So before you start building your web or mobile app, make an informed decision about your tech stack.
How to choose the right tech stack
Unless you’re an experienced developer, you probably have no idea how to choose a tech stack. And that’s okay. As an ideas person, you’re not likely to have to dig into the code on the server or client sides. But if you’re driving the creation of the product, you need to make sure the right decisions get made.
The best advice we can give is simple: work with someone who has experience in your area. Server- and client-side developers who have built similar apps can provide invaluable expertise on which elements you should include in your stack. Whether you bring someone on full-time or hire a freelancer, getting experience on your team is crucial.
In short, you need to think about what’s important to you. Make a list of things and keep it handy throughout the entire process. Of course, this list will change — that’s the nature of building a new product. But having an idea of where your priorities lie will be helpful to both you and the developer.
Two of the most commonly used stacks are MEAN (MongoDB, Express.js, AngularJS, and Node.js) and LAMP (Linux, Apache, MySQL, and PHP.) MEAN stack development is popular because applications can be written in one language for both server and client-side projects. LAMP stack development is used primarily for developing dynamic websites and web applications.
The overall factor that determines the technologies included in a tech stack is the product itself and what it is designed to do. Developer skill-level and preferences also play a role, as does the size and culture of the startup.
Popular tech stacks
The following companies were all once startups, so their tech stacks were a lot different when they started out that what they’ve evolved to today. Here are the major technologies they’re using for application and data processes.
Airbnb Tech Stack
- Framework: Rails
- Databases: MySQL, Amazon RDS, Hadoop
- Server: NGINX
Facebook Tech Stack
- Programming Languages: PHP, GraphQL, Hack
- Framework: Tornado
- Databases: Cassandra, RocksDB, Beringei, Memcached
- Server: custom/proprietary
Pinterest Tech Stack
- Programming Languages: Python, Java, Go
- Databases: MySQL, Hadoop, HBase, Memcached, Redis
- Server: NGINX
Uber Tech Stack
- Programming Languages: Python, Java, Go, Objective-C
- Framework: Node.js, Apache Thrift
- Databases: MySQL. PostgreSQL, MongoDB, Redis
- Server: NGINX
There are several other technologies that are included in each individual tech stack, such as libraries, hosting environments, utilities, and more. The type of product being developed will determine what tools are included.
For example, Atlassian’s SaaS technology stack includes Amazon cloud storage and hosting, Kubernetes container tools, and Jira issue tracking solutions. A marketing technology stack like Hootsuite relies heavily on utilities such as Optimizely, Google Analytics, and business tools such as Marketo. No two tech stacks look exactly the same for any organization.
Preparing your technology stack for success
The tech stack is — as the name implies — technical in nature. But that doesn’t mean non-developers shouldn’t think about it. In fact, it’s crucial that everyone involved in making decisions for a company be aware of the technology stack and how it could affect the company’s future.
That might seem like overkill, especially if you don’t know the first thing about development, but it affects more than just the development team. So take the time to talk to people who have experience with technology stacks. Tell them your priorities, your needs, and your thoughts on the future of your app.
Trust me: it’ll save you a lot of headaches.
Does your product have a tech stack in place? If so, what elements is it composed of? We’d love to hear about it!
Janaspandana is a house of young tech enthusiasts who have got hands-on experience in modern open source technology stack to help businesses and individuals to craft scalable impact-oriented products.