One of the most common insecurities for product managers (PMs) is their technical skills. While you don’t need to be an engineer, having a solid understanding of how software works can help you communicate effectively with your team, manage risks, and make better product decisions. Let’s break down the technical jargon and concepts you need to know to feel more confident in 2025 and beyond.
All internet-based software products follow the same foundational architecture. They consist of three main components:
Client: This is what your users interact with directly. Examples include websites, mobile apps, smart devices like Tesla cars, or even smart fridges.
Server: This is the brain of the operation. It processes requests from the client, fetches or stores data, and performs actions like syncing your Google Calendar.
Database: This is where all the data is permanently stored. Think of it as the filing cabinet for your application.
Each of these components can be broken down into smaller, more specialized parts. Building scalable, well-organized software requires careful planning and execution. Let’s dive deeper into each of these components.
The frontend is the part of the application that users interact with directly. It’s the code that runs on the user’s device, whether it’s a browser, a mobile app, or a smart device. Frontend development involves creating intuitive, responsive, and visually appealing interfaces.
HTML (HyperText Markup Language): This defines the structure of a webpage. It outlines where elements like headings, paragraphs, and buttons appear.
CSS (Cascading Style Sheets): This controls the styling of the page, including fonts, colors, spacing, and layouts.
JavaScript (JS): This adds interactivity to the page. For example, it allows animations to play, forms to be submitted, or new data to be loaded without refreshing the page.
As web applications have grown more complex, developers have turned to frameworks to streamline their work. These frameworks provide pre-built tools and components, making it easier to organize code and build scalable applications. Popular frontend frameworks include:
React: Developed by Facebook, React is widely used for building dynamic user interfaces.
Vue: Known for its simplicity and flexibility, Vue is a great choice for smaller projects or teams.
Angular: A robust framework maintained by Google, Angular is ideal for large-scale enterprise applications.
The frontend communicates with the backend using HTTP requests. These requests are sent to specific endpoints (like a mailbox) on the server. Common types of HTTP requests include:
GET: Retrieve information (e.g., loading a user’s profile).
POST: Submit information (e.g., creating a new account).
PATCH/PUT: Update information (e.g., changing a user’s password).
DELETE: Remove information (e.g., deleting a post).
The backend is where the magic happens. It’s the part of the application that users don’t see but is critical for processing data, handling business logic, and ensuring everything runs smoothly. Backend code is not distributed to users—it runs on servers hosted in the cloud.
Most modern backend systems are hosted on cloud platforms like:
Amazon Web Services (AWS): The most widely used cloud provider, offering services like EC2 (servers), S3 (file storage), and Lambda (serverless functions).
Google Cloud Platform (GCP): Known for its data analytics and machine learning capabilities.
Microsoft Azure: A popular choice for enterprises, especially those already using Microsoft products.
These platforms allow you to rent computing resources like servers, databases, and storage, which can be scaled up or down based on demand.
API Gateways: Act as the front door to your backend, routing incoming requests to the appropriate services.
Caches: Temporary storage for frequently accessed data, speeding up response times.
Queues: Help manage high volumes of requests by storing them until they can be processed.
Content Delivery Networks (CDNs): Store static files like images and videos in multiple locations worldwide to reduce load times for users.
As your product grows, so does the demand on your backend. Scaling is the process of adding resources to handle increased traffic and ensure your application remains fast and reliable.
Horizontal Scaling: Adding more machines to distribute the load. For example, going from 1 server to 10 servers.
Vertical Scaling: Upgrading existing machines with better hardware, such as more memory or faster processors.
Scaling isn’t just about adding more resources—it’s about ensuring the entire system can handle the increased load. Common challenges include:
Bottlenecks: One component (e.g., the database) may become a bottleneck if it can’t handle the increased traffic.
Cost: Scaling can become expensive, so it’s important to optimize resources.
Complexity: As you add more components, the system becomes harder to manage.
Pub/Sub: A messaging system where one server publishes a message, and others subscribe to it.
Kubernetes: A tool for automating the deployment and management of containers (packaged applications).
Batching: Grouping multiple requests together to improve efficiency.
Rate Limiting: Controlling the number of requests a user or service can make in a given time period.
Pubsub: A queue. A message is sent in to the queue (published) and one or more servers can receive it (subscribe)
EC2: A product offered by AWS to run a server (Elastic Compute Capacity)
S3: A product offered by AWS to store files (Simple Storage Service)
SQS: A product offered by AWS to run a queue (Simple Queue Service)
SES: A product offered by AWS to send emails (Simple Email Service)
Lambda: A product offered by AWS to rent a server for a very short period of time
Containers: Document everything you need to run your application in one file
Kubernetes: Deploy a container to a server and manage all your servers automatically
Batching: Grouping requests together instead of sending them one at a time
Rate limit: The maximum number of requests that can be processed in some duration
Microservice: A set of resources (server, database, queue) that are built to do a specific task, like handling billing, notifications, recommendations, etc.
Understanding these technical concepts isn’t about replacing your engineering team—it’s about empowering yourself to:
Communicate Effectively: Speak the same language as your engineers and align on goals.
Manage Risk: Identify potential technical challenges early in the product development process.
Make Informed Decisions: Evaluate trade-offs between different technical approaches.