How to approach a system design interview ?

Yogita Misal
2 min readSep 25, 2024

--

Let’s walk into the system design garden..

Q1. Clarify the requirements : What are you building ?

  • The first step is to fully understand what's being asked.
  • Don’t rush into designing before you know the scope. Start by asking clarifying questions to understand the problem fully.
  • Consider — Who will use the system ?
  • What will they use it for?
  • How many users are expected ?
  • What will the system do ?
  • What kind of data will it handle , and how much?
  • How many requests per second should it support?
  • What’s the expected ratio of reads to writes?
  • By asking these questions, you define the problem clearly and set yourself up to design the right solution.

Q2. Design the big picture : High-Level Architecture

  • Once you understand the problem , the next step is to outline the high-level architecture.
  • This means sketching out the key components and how they interact with each other.

Here’s what you need to do:

  • Identify major components : Break down the system into key parts . In social media app, for e.g.. You’d have user profiles, posts, comments, and notification.
  • Show connections: Explain how these components communicate — whether through APIs, databases, load balancers or caching layers.
  • Justify your choices : Don't just present a design : Explain why.

Focus on key components

  • After outlining the big picture , the next step is to focus on the most critical parts.
  • For e.g.. If you’re building a URL shortening service, you’ll need to think about :
  • How will you generate and store shortened URLs?
  • What hashing technique will you use ( e.g. MD5, Base62)?
  • How will you handle hash collisions?
  • What kind of database will you use (SQL or NoSQL)?
  • How will you store and retrieve the data efficiently ?

Plan for Scaling : Handle Growth and Traffic

  • Once the core components are in place , think about how the system will scale.
  • What happens when the user base grows from 1,000 to 1 million?
  • Consider scalability solutions like:

Load balancer

Horizontal scaling

Caching

Database sharing

When discussing scalability, always consider trade-offs.

For eg. Caching can improve performance but might introduce complexity in keeping data up-to-date.

Quick calculation : Be ready to make quick estimates for data storage , traffic and basic numbers like latency and data sizes.

#systemdesign

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Yogita Misal
Yogita Misal

No responses yet

Write a response