Dos

• Always ask for clarification. Do not assume your assumption is correct.

• Understand the requirements of the problem.

• There is neither the right answer nor the best answer. A solution designed to solve the problems of a young startup is different from that of an established company with millions of users. Make sure you understand the requirements.

• Let the interviewer know what you are thinking. Communicate with your interview.

• Suggest multiple approaches if possible.

• Once you agree with your interviewer on the blueprint, go into details on each component. Design the most critical components first.

• Bounce ideas off the interviewer. A good interviewer works with you as a teammate.

• Never give up.

Don’ts

• Don't be unprepared for typical interview questions.

• Don’t jump into a solution without clarifying the requirements and assumptions.

• Don’t go into too much detail on a single component in the beginning. Give the high- level design first then drills down.

• If you get stuck, don't hesitate to ask for hints.

• Again, communicate. Don't think in silence.

• Don’t think your interview is done once you give the design. You are not done until your interviewer says you are done. Ask for feedback early and often.

Time allocation on each step

Step 1

Understand the problem and establish design scope: 3 - 10 minutes

Step 2