Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/carrington-dev/system-design

System Design notes and Exercises
https://github.com/carrington-dev/system-design

software-architecture software-design software-engineering

Last synced: about 1 month ago
JSON representation

System Design notes and Exercises

Awesome Lists containing this project

README

        

# 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
7.

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
4.