Skip to content

Carrington-dev/system-design

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

system-design

System Design notes and Exercises

Purpose of the interview

The system design interview is meant to access your collaboration skills, communication skills, technical skills and your broad exposure to different technologies.

A framework for system design

Understand the problem

Starting to design a system when you don't have enough information is not good. Inorder to understand the system required ask questions on

  1. the scale
  2. algorithms used
  3. seperation of layers
  4. type of system (is it an http )
  5. are there endpoints needed (API)
  6. does it cater for Web Apps and Mobile Apps

Write the requirements down that you were given by the interviewer when you ask questions

Propose A High Level Design

With the information provided in first section, propose a high level design which makes a lot of sense to your interview

  1. Make sure you don't contradict any given information
  2. Make it interactive when proposing the high level design.
  3. Use your technical knowledge to express or share any releavnt information about the design like algorithms, advantages and disadvantages of a particular algorithm or technique
  4. Try to list all the possible algorithms and their pros and cons
  5. Choose the Specific Algorithm

Dive Deep

  1. With the High Level Design in the previous section design a complete system with all the information
  2. Make sure the different components commmunicate
  3. If it's a distributed system state how you would overcome different challenges that come with it
  4. The design should be subjective if asked for a particular system, make sure you address all the specific aspects about the system

Wrap Up

  1. Provide a nice conclusion
  2. State other possible additions you would add to the system

Notes

Systems are generally the same, hence always check how all popular systems where designed like

  1. Amazon Shopping Centre,
  2. PayPal,
  3. Twitter,
  4. Facebook,
  5. URL Shortener,

This help in enlightening you to develop similar systems that correlates to your knowledge and exposure

Keywords Awareness

  1. Consistency
  2. Tolarance
  3. Distributed
  4. Avalaibility
  5. Sockets
  6. Networks
  7. Concurrency

Time Management

Time management si very essential

  1. it allows you to showcase your skills
  2. It allows you to ask important questions
  3. It gives you a good reputaion

Releases

No releases published

Packages

No packages published