Skip to main content

Introduction

HLD represents the best way to build and scale applications to millions of users.

You can also refer here for more study material.

Tips to Approach the HLD Problem

Step-1: Deciding Requirements

  1. Functional Requirements: What should the system do. E.g: Uploading a video
  2. Non-Functional Requirements: How well your system performs. E.g: Reliability, Scale, Latency, Massive Traffic.

Step-2: Capcity Estimation

This includes estimating the following:

  1. Daily/Monthly Active Users (DAU/MAU)
  2. Throughput: requests per second
  3. Storage: Gb, Tb
  4. Network Bandwidth: Gbps

Step-3: API-Design

Writing Functional Requirements more technicially Look for the Api's/endpoints that are required to support

Step-4: High Level Design

Build a HLD covering the above requirements.

Step-5: Deep Dive

Deep Diving on any aspect the interviewer wants.