Tech Stacks and Programming Languages: What Every Product Manager Needs to Know
Technical Knowledge for Product Managers
Welcome to part two of a series of articles covering technical knowledge for Product Management. Today I’m going to cover the basics knowhow a Product Manager needs around tech stacks and programming languages.
If you’d like to learn why I think this knowledge is important, then head back to my article where I discussed WHY I wanted to improve my own technical knowhow.
And don’t forget to subscribe to email updates if you want to be notified when the next article is published!
Programming Languages
A programming language is a means of controlling the behavior of a machine using a standardised set of commands, instructions, and rules.
Each programming language has its own set of features, advantages, and disadvantages, and the choice of language depends on the specific requirements of the project, and to an extent, the familiarity of the developer or team implementing it. Developers use different programming languages to achieve different goals, such as building complex systems, developing algorithms, and creating user interfaces.
In order to write code in a programming language, developers usually use a text editor or an integrated development environment (IDE) to write, debug, and test their code. Once the code is written, it is typically compiled or interpreted into machine-readable instructions that can be executed by a computer.
Front-end vs Back-end
What does the front-end refer to?
The front-end focuses on the user-facing side of an application (client-side). Front-end web developers use languages like HTML (the content and structure of the site), CSS (styling), and Javascript (dynamic behaviour/interactivity).
What does the back-end refer to?
The back-end manages the data and logic underpinning an application (server-side). The back-end includes application logic, file system, databases, hosting, web server, web development frameworks, and operating system. Back-end developers commonly use programming languages such as Ruby, Python, and Java.
- Java is a general-purpose programming language that is used to build a wide range of applications, from desktop and mobile apps to web applications and games.
- Python is a high-level programming language that is known for its simplicity, ease of use, and flexibility, and is commonly used for data analysis, scientific computing, and machine learning.
- Ruby is a dynamic, object-oriented programming language that is known for its simplicity and expressiveness, and is often used for web development.
What does it mean when somebody is ‘full stack’?
This term is used to refer to developers who are proficient in developing both the front-end and back-end of a web application.
The term “full stack” refers to the full technology stack required to build a web application, which includes the front-end, back-end, and database layers. A full stack developer has the skills and knowledge to work on all layers of the technology stack. They should use HTML, CSS, JavaScript, and at least one server-side language such as Java, Python, or PHP. They should also have knowledge of databases and web server technologies.
A side note about job postings and unicorn developers
Job postings and requirements lists for developers can sometimes imply that if you could find just one person with the most diverse and rare toolset, it will save you from hiring multiple others. When it comes to hiring a developer, it might look like more programming languages = greater value creation. (You see a similar trend with job descriptions for product managers and designers, by the way.)
However, more is not always more. The benefits are not linear to the number of programming languages a developer can use. Although full-stack developers are more likely to be capable of working independently, there are some risks in this hiring approach. You will find that:
- “Unicorns” tend to be very expensive — the more elusive the unicorn, the higher the price
- Outcomes can become very dependent on one person, when you could have hedged the risk by distributing skills/tasks across a team. This is a business risk if this highly-demanded unicorn decides to pursue an opportunity elsewhere!
- Multiple people slicing the work can not only achieve the same outcome faster, but allow for better oversight, code consistency and documentation, and project management. Just one superstar may not lead to scaleable results. Team size is a big factor here; a very small, early-stage team may not allow for specialisation in the way a bigger team might.
- Somebody who is working across many languages may be ‘Jack of all trades, master of none’. It may also be the case that a full-stack developer has a ‘T Shaped’ skillset — ie know many technologies, specialises in one or some.
What’s in a Tech Stack?
Tech stacks, libraries and frameworks
A library is a collection of pre-written code or functions that can be used by software developers to perform common tasks, such as manipulating data or interacting with hardware or software components.
Libraries are usually organized around specific programming languages or frameworks, and they may be distributed as part of a larger software development kit (SDK) or as standalone packages. By using libraries, developers can save time and effort by leveraging existing code instead of writing everything from scratch. Popular examples are Python Standard Library, jQuery, Bootstrap, Pandas, Express, and Axios.
A framework is a pre-built software tool or platform that provides a structure for organizing and building an application and also prevents developers from ‘starting from scratch’ every time. Popular examples include React, Angular, Vue.js, Django and Ruby on Rails.
In general, libraries give developers more control and flexibility, while frameworks provide a more structured and comprehensive approach to software development. But the power of libraries and frameworks is that they save developers time by allowing them to build on the expertise of other developers, and prevent them from re-inventing the wheel.
A tech stack refers to the set of tools and technologies used to build an application. A tech stack may include multiple frameworks that are used together to build a software application.
Why is it so important to pick the right tech stack?
Picking a tech stack is a critical factor in application design and development, which shapes not only the products that can be built but also future hiring.
As a PM in an early stage company, you’re unlikely to be making the final decisions on the tech stack, but it’s important to know how the decision can impact the business going forwards.
- Cost efficiency: Choosing the wrong technology stack can lead to additional costs in terms of time and money. For example, if a company chooses a technology that is not suitable for their project, they may need to invest more time and money in redeveloping the project in a different technology.
- Scalability: The technology stack chosen must be scalable to accommodate future growth of the company. The wrong technology stack can cause bottlenecks and limit the growth of the company.
- Maintainability: The chosen technology stack must be easy to maintain and update. If the company chooses a technology that is outdated or difficult to maintain, it can lead to additional costs and downtime. Some technologies are better documented, and offer remediation options for developers.
- Compatibility: The technology stack chosen must be compatible with other systems and technologies used by the company. If the technology stack is not compatible, it can cause integration problems and hinder the overall performance of the company.
- Performance: The technology stack must be capable of delivering the required performance for the project. If the technology stack is not suitable for the project, it can lead to poor performance, increased cost, and user experience.
- Speed of Development: Are there out-of-the-box functionalities and third-party integrations for the software
- Employee talent: Are the current team familiar with these technologies, or able to upskill quickly? How difficult will it be to hire and onboard new team members?
So as you can see, picking the right tech stack from the offset is critical to the success of a company as it can impact cost, scalability, maintainability, compatibility, and performance.
If you want to find out which tech stacks some of the largest tech companies are working with, I would recommend this engaging youtube video by Sunshine In My Code: What’s in their Tech Stack? .
Any questions I didn’t answer above? What do you want to learn more about next? Check out the extended reading list below if you want to dig a bit more into this particular topic.
Next week I’ll be back with Everything Cloud Computing. Don’t forget to subscribe for email notifications if you don’t want to miss it!
Further Reading
- Front End vs Back End: What’s the Difference? by Computerscience.org (article)
- Front End vs Back End: What’s the Difference? by FreeCodeCamp (article)
- What’s a Full Stack Developer? by FreeCodeCamp
- What is a Technology Stack? — by QuickTips (video)
- A Comprehensive Guide to Modern Web Development Stacks — by enknonix (blog post)
- How to choose the right tech stack for web development — by educative.io (blog post)
- HTML — by Albert Wenger (blog post)
- What’s in their Tech Stack? —by Sunshine in my Code (video)
- Full-Stack Developers and Unicorns — by Niels Talens (article)






