System design is the most intimidating interview category for engineers who have not encountered it before: there is no single correct answer, no test to run, and the question can go in infinite directions. Yet with a structured approach, system design becomes one of the most learnable interview skills. This guide explains how system design is tested at Indian companies, what interviewers are actually evaluating, and walks through two complete example designs.
When and how system design is tested in India
Who faces system design interviews: SDE-1 (0–2 years) at Indian product companies: usually a high-level design discussion, not a full distributed system design. SDE-2 (2–5 years): full system design: expect a 40–60 minute interview on designing one significant system. SDE-3/Senior: advanced system design: multi-service, trade-offs, operational concerns.
Freshers at TCS/Infosys/Wipro: System design is rarely a dedicated round. It may appear as a question in the technical interview at the high-level ('How would you design a library management system?') but is not the deep distributed systems design that product companies test.
What interviewers are evaluating: Requirements clarification (do you ask the right questions?). Structural thinking (can you decompose a complex system into components?). Trade-off reasoning (can you justify your choices?). Scalability awareness (does your design handle 10M users?). Practicality (do you know real technologies and when to use them?). Communication (can you explain complex systems clearly?).
The 6-step framework for any system design question
Step 1: Clarify requirements (2–3 minutes): Functional requirements: What does the system do? Non-functional requirements: Scale (how many users? QPS?), availability (99.9%? 99.999%?), latency (p99 < 100ms?), consistency requirements. Example: For 'Design a URL shortener': ask: How many URLs shortened per day? How many redirects per day? Should URLs expire? Custom aliases?
Step 2: Estimate scale (2 minutes): Back-of-envelope calculations. Example: 100M URLs/day shortened → ~1200 URLs/second. 10:1 read/write ratio → 12,000 redirects/second. At 500 bytes/URL, 100M/day × 365 = 18TB/year of storage.
Step 3: Define the API (2 minutes): The contract between clients and your system. POST /shorten {url: string} → {shortUrl: string}. GET /{shortCode} → 301 redirect to original URL.
Step 4: High-level design (5–10 minutes): Draw the key components: Load Balancer → Application Servers → Database. For URL shortener: client → LB → app servers → write to database (URL mapping), return short code. For redirects: client → LB → app servers → check cache (Redis) → if miss, check database → return 301.
Step 5: Deep dive (15–20 minutes): Go deeper on the interesting parts. For URL shortener: short code generation (base62 encoding of a counter, or UUID hashing), cache layer design (Redis with LRU eviction), database choice (PostgreSQL: simple relational model works fine at this scale), handling hotspot URLs (CDN + aggressive caching).
Step 6: Handle failure and scale (5 minutes): Database replication (primary-replica for reads). App server statelessness (any server can handle any request). Cache warming for newly viral short URLs. Rate limiting on the shortening API to prevent abuse.
Example walkthrough: Design Instagram (image sharing) for India
Requirements: Users upload photos. Users follow other users. Feed shows recent photos from followed users. Support 100M daily active users.
Scale estimates: 5M photo uploads/day (~60/second). 500M feed views/day (~6,000/second reads: read-heavy system).
Core components:
Media storage: S3 for photos. Client uploads directly to S3 (presigned URL pattern): do not route large files through app servers. CDN (CloudFront) in front of S3: serves images from edge nodes closest to Indian users.
Metadata database: PostgreSQL or Cassandra. Tables: users, photos (photoid, userid, s3key, timestamp), follows (followerid, followingid). Indexes on userid, timestamp.
Feed generation: Two approaches: pull (user requests feed → query all followed users' recent photos → expensive for users following 1000 people) vs push/fan-out (when someone posts, push the photo to all followers' feed cache → expensive for celebrities with 1M followers). Hybrid: fan-out for most users, pull for celebrities.
Feed cache: Redis sorted sets: user's feed stored as a sorted set of photo IDs sorted by timestamp. App servers read from Redis, fetch photo metadata from database.
Notifications: Kafka event when a photo is uploaded → notification service → push notifications to followers (Firebase/APNs for mobile, server-sent events for web).
India-specific optimisation: Compress images aggressively for users on 4G (use WebP format, multiple resolutions via srcset). Serve CDN from Mumbai and Chennai edge nodes. Pre-warm cache for viral Reels-equivalent content.
System design requires practice talking through your thinking clearly. HireStepX's AI mock interviewer gives you a realistic design session with real-time feedback on your structure and depth.
Practice freeCommon System Design Topics at Indian Companies
Indian product companies test a recurring set of system design scenarios that candidates can and should prepare specifically. The most frequently appearing design problems across Swiggy, Flipkart, PhonePe, Paytm, Razorpay, and Zomato include: design a URL shortener, design a notification service at 10 million daily users, design a payment gateway with idempotency guarantees, design a ride-sharing dispatch system, design a product search with autocomplete, and design a rate limiter for an API gateway. Each of these problems maps to real systems these companies run, which means interviewers have strong opinions on what the right approach looks like. Understanding the trade-offs between eventual consistency and strong consistency is particularly important for Indian fintech design rounds where payment reliability is a central concern.
Estimating Scale for India-Specific Scenarios
Back-of-envelope estimation for India-scale systems requires different baseline numbers than US-centric resources. India has approximately 800 million internet users in 2026 with 650 million smartphone users. A successful consumer app in India targeting the top 10 percent of internet users has an addressable audience of 80 million. Daily active users for a popular Indian super-app like Paytm or PhonePe run between 30 and 80 million. UPI transaction volumes in India exceed 12 billion per month, or roughly 4,500 transactions per second at peak. When designing payment systems in interviews at Indian fintech companies, using these real-world benchmarks demonstrates market awareness that generic calculations lack. Interviewers at companies with India-first products respond positively to candidates who reason about India-specific constraints like 2G fallback for tier-2 users and low average revenue per user driving cost optimization requirements.
Frequently asked questions
Explore more