Uber vs. Lyft, Vrbo vs. Airbnb, Netflix vs. Hulu, Hubspot vs. Salesforce, or Spotify vs. Pandora—these are the rivalries that interest most entrepreneurs and startup owners looking to create their own solution in the niche.
Why? Because knowledge is power. Once you know what’s under the hood of the most prominent tech giants of the 21st century, planning a tech stack for your own business is much easier. Learning about prominent companies’ choices shows what languages, tools, and frameworks have already proved to be effective in the field.
First, let’s explore what a tech stack is before diving deep into what’s happening behind the curtains of the applications that millions of people use every day.
What’s a tech stack?
A tech stack is the selection of technologies used to power every aspect of a product from the back-end to UI/UX. It includes hosting and cloud storage. Put simply, a tech stack is essentially all the instruments and materials your development team will use to build an app from the ground up.
Why do tech stacks matter?
Choosing a tech stack is a strategic decision. It has a lasting impact on the entire development lifecycle and even beyond. The same tasks can be solved by various technologies, and you need to find the ones that fit your individual needs, i.e. the ones that are effective and cost-efficient.
Why do tech stacks of other companies matter?
Not every coding language, cloud storage, framework, or virtual machine is made equal. More on the matter, most are designed to address a very specific set of challenges.
Let’s take a look at Python, for example. It is an interpreted, high-level language that, according to its common description, is used for general-purpose programming. It’s true to an extent: you can, in theory, code anything you want with it. You can use Python to develop a Data Science app, a Web scraping tool, AI, or IoT products. It would be much harder to develop a web page’s front-end or a mobile app using Python.
If you try to use Python to develop things it’s not designed for, you will be spending more time, doing excessive reworks, and investing heavily in third-party tools. The entire development process will become problematic for the team and the investors.
Opening a wine bottle with a fork is possible, but why bother when there’s a perfectly good corkscrew around?
This is exactly why many businesses spy on the market’s most successful products to see what fitting solutions those have found.
Without further ado, let’s take a look at the tech stacks of the most prominent IT companies.
Uber tech stack
Uber initially took an innovative approach: they opted to break the then mainstream monolithic architecture into many independent elements so that scaling (as well as a wide variety of fixes and improvements to the application) is as painless as possible.
Infrastructure and data storage are probably among the most vital elements of Uber’s application as there’s a huge need to work with maps, vehicles, and users on a per-location basis. The company chooses a hybrid cloud model that relies on a multitude of service providers, tools, and backup servers which get swapped out if and when the need arises.
Docker and Mesos are used to run and scale the hundreds of microservices that the tech giant’s app relies on. There’s also a custom-built library of builds that’s been converted into Docker images.
Originally kicking things at the lower levels with Python and Node.JS, Uber has expanded to Java and Go for their higher performance and open-source ecosystem. Also, Go’s native asynchronous programming gives the team a better grasp over the Python-based microservices once they are broken down.
Coding languages:
- Python
- Java
- Go
- C
- C++
- Tornado
- HAProxy
- Node.js
QA and QC:
- uDestroy
- Hailstorm
- Nagios
- Phabricator
Data and performance analysis:
- M3
- uMonitor
- Common Action Gateway
- Storm
- Grafana
- React
- WebGL
- SVG
- Canvas 2D
- Spark
Development process:
- GitHub
- Docker
- OpenGrok
- Boto
- Unison
- uBlame
- OSX
- Debian Jesse
- Linux
- Clusto
- Jenkins
Application provisions:
- Docker
- Aurora
- Mesos
Data logging:
- Kafka
- Kibana
- Logstash
- Hadoop
Elasticsearch
Data storage and infrastructure:MySQL
Cassandra
Hadoop
Redis
Postgres
Riak
Terraform
Twemproxy
Mapping:
- uETA
- DropWizard
- Gurafu
- Java
Lyft tech stack
As any Taxi service, Lyft has built its tech stack around three pillars: simplicity, great UI\UX, and excellent geolocation.
In terms of the architecture, Lyft and Uber are similar, too: both aggregators are built using scalable microservices. The choice of Python, Java, and Go seems obvious.
Lyft is heavily relying on various cloud and data storage solutions. But none are set in stone: the company only uses third-party services as long as those are cheaper than in-house storage and servers.
Application and data:
- NGNIX
- React
- PHP
- Python
- Cloudflare
- MongoDB
- Amazon services
- DropBox
- Go
- Swift
- Android SDK
- MongoLab
- Java
- Flask
- AngularJS
Utilities:
- Git
- Jenkins
- GitHub
- Vim
- PyCharm
- Sublime Text
- VirtualBox
- Atom
- Xcode
- Sauce Labs
Business tools:
- Slack
- Jira
- Confluence
- Medium
- G Suite
- HelloSign
Airbnb tech stack
With over 150 million active users, Airbnb is rightfully the king of the booking scene. How have they achieved it? There are two main answers: amazing filters functionality and great suggestions algorithms.
The entire application is built around a sophisticated, AI-powered algorithm that finds relevant rooms and accommodation according to a user’s requirements. The app considers countless factors: for example, ratings, experience, and proximity to eateries or public transportation joints.
The recent COVID pandemic has made travel much harder for everyone, but Airbnb is more than ready to handle the increased load when the travel limitations are gone. The reason is that it’s not a cloud-based application, so they are ready to scale whenever there’s a rise in demand.
Application and data:
- JS
- React
- NGINX
- Java
- MySQL
- Redis
- Sass
- Ruby
- Amazon services
- Hadoop
- Druid
- Airpal
Utilities:
- Google Analytics
- Twilio
- Mixpanel
- Nexmo
- Aerosolve
- Wingify
- Superset
DevOps:
- GitHub
- Webpack
- Kibana
- Sentry
- Jest
- Airbnb SmartStack
- Enzyme
- Chef
Business tools:
- Slack
- GSuite
- Asana
- InVision
- Assemblage
- Campaign Monitor
Netflix tech stack
Some might argue that Netflix owes its success to the vast availability of stunning content, but that is only partially true. After all, what’s the point of having critically acclaimed shows in a place where no one can see them?
The Netflix app is based on multiple programming languages: Python, Node.JS, Java, Kotlin, and Swift. This is done to ensure all-round compatibility of the Netflix app across multiple platforms: browsers, smart TVs, smartphones, and gaming consoles.
The comprehensive library part of the stack is designed to offer users the most polished experience they’ve grown to expect from a streaming service. Netflix owes its user-friendly interface to React and JS UI libraries.
Given the app’s heavy emphasis on cloud-based solutions, the team behind the streaming giant has opted to use Dynomite as the database cluster management service. It offers several exceptional advantages: for example, support for in-memory, pluggable, and persistent storage engines.
Application and data:
- Python
- Node.JS
- React
- Java
- MySQL
- PostgreSQL
- Flask
- Oracle
- Cassandra
- Presto
- Amazon services
Utilities:
- Falcor
- Urban Airship
- Amazon SES
DevOps:
- Jenkins
- Grandle
- GitHub
- Git
- Apache Mesos
- Sumo Logic
- Crittercism
- Vector
- Dynomite
- Boundary
- WS CloudTrial
Business tools:
- GSuite
- Confluence
- OneLogic
- HubCommander
Salesforce tech stack
A lot about the tech stack behind Salesforce itself is not public knowledge, but one can figure out a lot from the assortment of tools the company is known to use.
The primary focus, as with all large-scale projects that support thousands of users in real time, is scalability. Then comes usability on a multitude of platforms, including web browsers and native mobile applications. And, of course, data storage and security are pivotal, given the number of contacts and deals users store in their Salesforce accounts.
Also, Salesforce features custom-built analytics tools and complex search and analysis algorithms.
Application and data:
- Akami
- ClearDB
- Cloudant
Utilities:
- Google Analytics
- Twilio
- Heap
- Recurly
- Cyfe
- Zuora
- Optimizely
- TransmogrifAI
DevOps:
- Jenkins
- StillAlive
- Puppet Labs
- Datadog
- Sauce Labs
- Cloud9 IDE
- Bitbucket
Business tools:
- Salesforce Sales Cloud
- Balsamiq
- InVision
- UXPin
- Jira
- DocuSign
Spotify tech stack
In essence, all music streaming applications work similarly. Millions of tracks are stored either on physical servers or in clouds (Spotify chose the latter) and are then streamed to a user’s device.
But there’s much more to Spotify. Pivotal to the music streaming giant’s success is its functionality of music discovery based on complex algorithms of preference and behavior analysis.
Spotify’s tech stack focuses on three primary challenges:
- Uninterrupted streaming: Multiple servers in different locations
- Data storage: Own cloud-based architecture, Hub framework, Google Cloud, Docker, Apache Storm
- AI-based recommendations: Python
Application and data:
- Python
- NGINX
- Java
- PostgreSQL
- Bootstrap
- Kafka
- Cassandra
- Hadoop
- Google Cloud
- Apache Storm
- BigQuery
Utilities:
- Google Analytics
- Twilio
- Lookback
- Google Cloud Dataflow
- Hub Framework
DevOps:
- Docker
- New Relic
- Datadog
- Pingdom
- TestFlight
- Percy
- Helios
Business Tools:
- G Suite
- AdRoll
- Qualaroo
- Desk.com
- Blossom
Putting together the right tech stack is a continuous challenge, and one of the ways to succeed in it is to turn to industry’s biggest players. Seeing what they are choosing can give you clues as to what your own project needs. And researching the logic behind their choices can help you make better tech stack decisions.
Previously published at maddevs.io/blog
Top comments (2)
Netflix is one of the main Apache Druid users to power real-time insights and ensure a high quality experience. From their own blog: netflixtechblog.com/how-netflix-us...
python 🐍 <3