SarvamStack

    Phase 1

    Getting Started

    Understand what system design is and how to approach it.

    Pause & reflect

    Before you read on, answer this in your head — or on paper:

    You're asked to "Design Twitter." No code, no screen mockups — just architecture.

    What do you think the interviewer wants to hear? What should you clarify before drawing boxes?

    Take about 30 seconds. No skipping — thinking first makes the next part stick.

    System design is the process of defining the architecture, interfaces, and data for a system that satisfies specific requirements. It covers everything from infrastructure down to how data is stored and accessed.

    A good system design requires thinking about scalability, availability, latency, and fault tolerance — and making deliberate tradeoffs between them.

    How to approach an interview

    1. Clarify requirements

    Ask about functional requirements (what the system does) and non-functional (latency, availability, scale). Don't assume — "Design X" is intentionally vague.

    2. Estimate scale

    Ballpark numbers: DAU, requests per second, storage. This shapes your choices. Use simple math and round.

    3. Data model

    Define entities and relationships. Tables or collections. This anchors the rest of the design.

    4. High-level design

    Draw components: load balancer, API servers, databases, cache, queue. Show how data flows.

    5. Deep dive

    Go deeper where it matters. Sharding strategy, cache eviction, consistency tradeoffs. Discuss bottlenecks and how to fix them.