What is a technology 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.
What’s the purpose of a 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. The engineering department at Mixpanel recruits based on tech stack experience.
What’s in a technology stack?
Advice for building technology stacks
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.
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.
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.
Learn how to pick the best-of-class tools for your stack.Download whitepaper