Interview question bank
·3 mins
Low-level design #
Standard #
- Design a game of chess.
- Follow up:
- How to implement rules of how different pieces move?
- How to know if a piece can move from loc1 to loc2? how does the move happen?
- How do you know there’s a checkmate?
- Where to keep direction?
- Follow up:
- Counter Strike.
- Requirements:
- Two teams, cops and terrorists, each with some players.
- Players can have weapons.
- Players have a health counter, which goes down based on certain parameters (where was he hit, by what location/weapon etc.).
- Assume 2D/grid-like maps. In future, we can add new maps.
- Follow up:
- How does a player know who all he can shoot?
- How do you shoot (as in, what classes interact and how)?
- How does player move?
- Requirements:
- Calendar, with ability to add events, get events for a given day and get details for a given event ID.
Simple #
- 2-player snakes and ladder.
High level design #
Standard #
- A health monitoring system for a huge fleet of machines, with automated alerts and admin UI.
- Follow up:
- Pull vs push?
- Where do you keep thresholds on when to alarm? Can you ensure separate thresholds for same metrics for different people?
- APIs
- How do you add more metrics in future?
- How do you know your system is working fine?
- Follow up:
- Netflix: based on certain rules, that should be extendable, should user be allowed to watch a title? For e.g., geography, membership type, HD or not etc.
Simple #
- A service to ingest and vend out logs, something similar to Timber.
- Requirements:
- Dedupe data based on something.
- Don’t look inside the logs. Ingest as is.
- APIs.
- Advanced- design the daemon which is doing log rotation on hosts.
- Requirements:
- Wish list feature on amazon.
- Follow up:
- How is watchlist stored in backend? RDBMS or NoSQSL?
- How would you run into concurrency problems in distributed systems?
- Follow up:
Upcoming #
- A system to match competitor prices.
- Dacia (only if candidate has worked on sqs or other queueing system before)?
- Meeting room booking system.
- Distributed throttling between a group of machines
- IRCTC website?
- Requirements:
- DJS?
- Top 10 trending products.
High and low level design together #
Standard #
- Bar exchange where prices go up or down depending on demand.
- Requirements:
- Multiple tables.
- Users can order multiple times.
- They should pay the price of item when they ordered.
- Decider can be assumed as a black box but think about its input and output data.
- Follow up:
- How will this work for multiple restaurants?
- Inventory validation? Can you blindly take an order and deny later? How do clients know if item is still available?
- Can decider be notified of incoming orders?
- Do you take price as input from clients (which can be rogue) or store in your system?
- Requirements:
- System to reserve tables in a restaurant.
- Requirements:
- For one restaurant, book tables for requested time range and capacity.
- All components, such as mobile app with restaurant host, backend, etc.
- Follow up:
- Database modeling.
- Merge tables.
- How to extend system to bar stools?
- Advanced- how to extend to multiple restaurants?
- Requirements:
Upcoming #
- Public library, which has lot of branches, allows placing a hold, etc.