Technical Fundamentals Every PM Should Know

6 min read
Product Management

This document serves as a comprehensive guide for people in Product to build a foundational understanding of essential technical concepts, enabling effective collaboration with engineering teams.

How does the Internet work?

Basic Components

  • Clients: Devices (browsers, mobile apps) requesting services.
  • Servers: Machines hosting websites, APIs, or databases.
  • Protocols: Rules governing communication (HTTP, TCP/IP, etc.).
  • ISP (Internet Service Provider): Provides access to the Internet.
  • Routers & Switches: Direct traffic across the network.

Data Travel

  • Data moves in small packets across the network.
  • Uses protocols like TCP/IP to ensure delivery.
  • Packets may take different routes and get reassembled at the destination.

DNS (Domain Name System)

  • Converts human-readable domain names (e.g., google.com) into IP addresses.
  • Works through hierarchical name servers.
  • Caching speeds up the process.

Web Requests and Responses

  • Clients send HTTP/HTTPS requests to servers.
  • Servers respond with requested content (HTML, JSON, etc.).
  • Status codes indicate success (200), errors (404, 500), etc.

Security

  • SSL/TLS: Encrypts communication (HTTPS ensures security).
  • Firewalls: Protect networks from unauthorized access.
  • DDOS Protection: Prevents malicious overload attacks.

Frontend vs Backend

RoleExpectationsTools Used
Front EndHandles UI/UX, client-side logic, user interactionsReact, Angular, Vue.js, HTML, CSS, JavaScript
Back EndManages databases, APIs, business logic, securityNode.js, Python (Django/Flask), Ruby on Rails, Java (Spring)

APIs (Application Programming Interfaces)

APIs enable communication between different software applications. They allow frontend apps to interact with backends and third-party services.

  • Types: REST, GraphQL, SOAP
  • Key Concepts:
    • Endpoints
    • Request Methods (GET, POST, PUT, DELETE)
    • Authentication (OAuth, API Keys, JWT)

Video: APIs Explained

Databases

Databases store and retrieve structured and unstructured data.

  • Types:
    • Relational (SQL): MySQL, PostgreSQL, SQLite
    • NoSQL: MongoDB, Firebase, Cassandra
  • Key Concepts:
    • Tables, Rows, Columns (SQL)
    • Collections & Documents (NoSQL)
    • Indexing for performance

Video: Databases for PMs

Software Development Life Cycle (SDLC)

The SDLC is a structured approach to software development.

  1. Planning: Define goals, scope, and feasibility.
  2. Analysis: Gather requirements and document user needs.
  3. Design: Plan architecture, UI/UX, and system components.
  4. Development: Code and build the application.
  5. Testing: Identify and fix bugs (unit, integration, system testing).
  6. Deployment: Release software to production.
  7. Maintenance: Monitor, update, and fix issues post-launch.

Version Control

Version control systems (VCS) track code changes, enabling collaboration and rollback when needed.

  • Tools: Git, GitHub, GitLab, Bitbucket
  • Key Concepts:
    • Repositories
    • Commits & Branching
    • Merging & Pull Requests
    • CI/CD (Continuous Integration & Deployment)

Basics of Version Control

Testing and QA (Quality Assurance)

Ensures software meets quality standards and is bug-free.

  • Types of Testing:
    • Unit Testing (testing individual components)
    • Integration Testing (testing interactions between components)
    • Functional Testing (checking expected outputs)
    • Regression Testing (ensuring new changes don't break old features)
    • Performance Testing (checking system speed and load capacity)

Cloud Computing

Cloud computing provides scalable, on-demand access to computing resources.

  • Service Models:
    • IaaS (Infrastructure-as-a-Service) — AWS EC2, Google Cloud Compute
    • PaaS (Platform-as-a-Service) — Heroku, AWS Elastic Beanstalk
    • SaaS (Software-as-a-Service) — Gmail, Dropbox, Salesforce
  • Key Concepts:
    • Virtual Machines & Containers (Docker, Kubernetes)
    • Serverless Computing
    • Scalability & Load Balancing

System Design Basics

System design is about architecting scalable and efficient applications.

  • Key Components:
    • Load Balancers
    • Databases (SQL vs NoSQL)
    • Caching (Redis, Memcached)
    • Message Queues (Kafka, RabbitMQ)
  • Common Architectures:
    • Monolithic vs. Microservices
    • Client-Server vs. Peer-to-Peer
    • Event-Driven Systems

Resources and References

FAQs

  • Why should PMs understand technical concepts?
    • Helps in communicating with engineers, making informed decisions, and improving collaboration.
  • Do PMs need to code?
    • Not necessarily, but understanding logic and technical constraints is valuable.
  • How deep should a PM's technical knowledge be?
    • Enough to ask the right questions and challenge assumptions.