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.
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.
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: