System Design Interviews 2022
System design interviews are the most difficult to tackle among all the technical interviews especially in big technology companies like "MAANG". System design round is more focused on the infrastructure knowledge and over all knowledge of candidate regarding his experience working on projects if candidate focused or keen to have high level idea of the overall software project which was created.
System design questions are intimidating, and no certain pattern to follow. The questions may have bigger scope and vague as processes are open-ended without a standard or correct answer.
In order to approach system design questions would be understanding the requirements and narrow it down to the technology stack interviewer is looking for. If I want to build a system which will provide support to millions of users requests and gradually scale it up to serve based on the users traffic or more users, focus in this scenario would be more towards web application, low latency, high throughput, caching server, No SQL database. Now usually candidate forget to consider other means of accessing systems like mobile devices (i.e mobile phone, tablets and other devices) which makes an impression of limited knowledge of multiple client interfaces connectivity and traffic which means candidate may have limited knowledge of load balancing from multiple client interfaces and only knows about one interface.
Most commonly asked system design questions in "MAANG" :
- News feed :
- Two major APIs :
- News-feed publishing API primarily connect clients to the servers via HTTP to send posts like any new post created or updated which will show it to the friends or subscribers.
- News-feed retrieval API will be focused on sending Get request to see the news posted by friends or subscribers.
- Considerations:
- Authentication and Authorization
- DDOS attack prevention
- Load Balancer
- Algorithms to distribute loads to the multiple data centers/availability zones:
- Round robin
- Hashing
- API Gateway
- Service discovery and service registration
- Create API Rate limiter and integration
- Microservices :
- Create few microservices using S.O.L.I.D principles.
- Apply few design patterns:
- Decomposition pattern
- Integration pattern
- Database patterns
- Observability patterns
- Cross-cutting concerns patterns
- Integrate Caching technologies for repeating News-feed :
- Memcache
- Redis
- Storage :
- User may have many friends and updates from friends, integrate Graph Database for quick search.
- NoSQL database will be better choice to create or update news-feed collections to improve agility and distributed scalable instances to avoid latency and delayed responses.
Following are few more cases to practice :
- Design Spotify (music application installed in Android phones and also has web interface)
- Design database based on key value storage (No SQL approach)
- Design an autocomplete system (this would need backend service details of Algorithms i.e Trie)
- Design cloud storage system ( refer to AWS S3 or Google Drive)
- Design video streaming platform with high video quality and no buffering.
- Design Rate limiter (to limit rests from user in certain time period and prevent requests from Bot)
Best of luck.
Comments
Post a Comment