Design Interview Questions


I have listed down some of the most common design questions asked in interviews of some of the top Software Companies around the world:
1. Design an online Chess game in which multiple games can be played in parallel. The design should be flexible enough to be able to accommodate feature enhancements like viewing a game, tracking the moves, sharing results etc

2. Design an online File Management System in which should have the following three capabilities:
a. Storage: Customers should be able to store their files in a secured manner.
b. Sharing: Customers should be able to share their files with other customers in a controlled manner.
c. Editing: Customers should be able to edit the stored files in an easy interface

3. Design an online Traffic Navigation System which will take an area map, a source and a destination as input parameters. The area map will be a two-dimensional array with cell values as 1 or 0, 1 denoting an available way and 0 denoting a traffic congestion. The output will show the shortest possible available paths to reach the destination from the current point.
The congestion and availability graph will change in real-time and the starting point will also keep changing as the person navigates towards destination.

Although there is no single solution to any design problem and almost always a solution is better and worse at the same time compared to another solution, the key is:
1. Breaking down the problem properly
2. Separating out the constant and changing parts consciously  
3. Developing the interfaces to cover the requirements exhaustively

Once the above three things are done, it is all about a clean implementation.

No comments:

Post a Comment