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.