What is a tech stack?
Developers canât manage a technology stack unless they know whatâs going on, which is why an analytics platform, like Mixpanel, is such an important part of the tech stack. Each tool in your stack creates, analyzes, or ingests data, and to run most efficiently, those data sources need to link to one another.
Definition
A technology stack, also called a solutions stack, technology infrastructure, or a data ecosystem, is a list of all the technology services used to build and run one single application. The social site Facebook, for example, is composed of a combination of coding frameworks and languages including JavaScript, HTML, CSS, PHP, and ReactJS. This is Facebookâs âtech stack.â
Developers talk about tech stacks because it makes it easy to communicate lots of information about how an application is built. The term is sometimes applied to marketing services (martech stacks) or sales services (sales stacks), but it originated in the software development community. A tech stack quickly summarizes the programming languages, frameworks, and tools a developer would need to interface with the application. Because most coding languages have well-known performance attributes and limitations, the tech stack hints at the overall applicationâs strengths and weaknesses. If a programmer knows that a software service is built on PHP, for example, they know that itâs code base is probably large and difficult to debug. PHP is a notoriously inefficient coding language yet is used in most popular web applications. If a programmer knows that an application was built using Ruby on Rails, they know theyâd have to learn the programming language Ruby to make any changes. Tech stacks are particularly useful for hiring developers. âUnless applicants are familiar with a tech stackâs frameworks and languages, or are willing to become familiar, they might not be a good fit,â said John Debs, a full-stack software engineer at messaging platform Lua. Companies trying to recruit developers often include their tech stack in job descriptions.
How to build your tech stack
Different companies will require different tech stacks and no two are alike. Teams decide on which technologies they want to use and then build upon a core coding language, adding additional tools and services as they go. âWhen you have a product in mind, you usually start with the front end, the piece that faces the customer, and then decide what back end tooling is needed to support that,â said Lira Skenderi, a data analyst and engineer at hosting provider Digital Ocean. The resulting bundle of services is called a âstackâ because each additional service builds upon those beneath it, which allows developers to customize the application. Developers designing an application that will be accessed by millions of people every day might choose programming languages that excel at what are known as high-read operations, meaning they can be accessed by many simultaneous users. If the application is meant to crawl the web and gather information, developers might opt for high-write languages. All tech stacks are divided between the back end and front end, also known as server-side and client-side. If a tech stack were a laptop computer, the back end would be the internal hardware that makes it run. The front end interface would be the screen, casing, and keyboard, which allow the user to interact with the laptop. When a job application calls for an engineer with back end, front end, and full-stack experience, itâs referring to the part of the tech stack that the applicant will ideally specialize in.
Back end technologies include web frameworks, programming languages, servers, and operating systems. One popular web development tech stack is known by the acronym LAMP, short for Linux operating system, Apache HTTP server, MySQL relational database management system, and the programming language PHP. Front end technologies are the visual interface, such as websites and apps. These are the visual elements that most applications are known for, and offer users the tools they need to get things done. Front end languages are typically much simpler than back end ones. Most web application interfaces are built using the programming language Javascript and the frameworks Angular JS, Backbone.js, and ReactJS. Front end technologies for smartphone apps include Objective-C/SWIFT for iOS app and Java for Android apps.
Like the foundation for a house, the order in which a stack is built matters. Each new layer builds upon the last and buried layers canât easily be ripped out. Here is some basic advice for building technology stacks:
Plan for the future
Preparing a tech stack for the future can be a double-edged sword. If developers donât consider how their application will scale, they might have to add additional services that make it cumbersome and difficult to manage. On the other hand, if they anticipate exponential growth and invest too much in expensive tools and services, they might run out of money before the application ever finds market successâif it ever does. The best strategy is to create minimum-viable products like web apps using open source tools to prove concepts before investing in them, and to look for tools that offer the flexibility to send data to the other tools in your stack, even if itâs not a requirement at first. When in doubt, developers should always gravitate toward more mature technologies and languages which are often more reliable.
Rely on the open source community
Developers around the world contribute to building open source tools that are free for use and available to anyone with an internet connection. The scope of the open source community and the utility it offers are staggering. âOpen source software is probably what is behind the past 10-20 years of tech renaissance,â said Debs. âAnybody can stand on the shoulders of giants and build products with incredibly complicated underlying technology that they never could have built themselves. Youâre talking about a pool of billions of hours of peopleâs time, and contributions from experts in every domain.â Debs estimates that the software he uses everyday took other people millions of hours to write. Any engineering teams considering building a tech stack will have an easier time by relying, at least in part, on open source software.
Consider the applicationâs purpose
Developers tend to favor languages they already know, but to build the best tech stack, it pays to step back and let the applicationâs purpose determine its technology. For example, will the application exist on mobile or on desktop? If on mobile, what apps? If desktop, what browsers? Is it a media site that will receive millions of daily visitors or mobile banking app that needs to be secure? Different programming languages, tools, and tech stacks lend themselves to each of these purposes. So might certain developers with relevant skills.
Use analytics
Developers canât manage a technology stack unless they know whatâs going on, which is why many use product analytics. Analytics platforms are designed to tie together data sources throughout the stack and provide granular user tracking. This allows developers to identify issues users experience within their application, to debug, and to fix the errors.
Consider upkeep
Teams should price out the technologies needed to support their tech stack before building it. When in doubt, teams should overestimate the total cost and remember to include the variable price of engineering talent. Developers are often attracted to innovative languages that will bolster their skills and resume, and while mature programming languages may provide reliability, they may make it harder to hire top talent. Occasionally, cheaper technologies might cost more in terms of attracting top talent.