System Design

Add New Chapter


ABCDs of System Design

Ask Good Questions:

  1. What’s features to work on?
    • Ask the good questions and define the Minimum Viable Product(MVP) for the system Design Problem.
    • A problem can have many features, it’s our responsibility to work with the owner and figure out which features he cares about and which features he doesn’t care about.
    • We need to remember that we are working under a very strict time frame, so we need to make sure our feature set is small and go deep into this feature set.
  2. How much to scale ?
    • How much data we need to store in the database?
    • How many requests/second need to be handled?
    • What kind of latency is expected from the system?

Don’t Use Buzzwords

  • Make sure whatever technologies or concept we are mentioning we do have some sort of in-depth knowledge on those technologies.

Clear and Organized Thinking

  • Before jumping into the minor details of the problem first we need to try to define the 50,000 feet view of the problem.
  • Need to make sure we have defined all the APIs.
  • Need to make sure we have drawn right boxes.
  • Need to make sure we know who are the actors for the system.
  • Once we have defined all those things then we go deeper into the details working with the product owner.

Drive Discussions (80-20) Rule

  • We should be talking 80% of the time and the product owner should be talking 20% of the time.
  • Need to make sure we lead the discussions.
  • Need to make sure we anticipate the problems which are there in our solution and fix them pre-emptively.