All Projects → checkcheckzz → System Design Interview

checkcheckzz / System Design Interview

System design interview for IT companies

Projects that are alternatives of or similar to System Design Interview

Lld Parking Lot
Repository for low level design solution of parking lot
Stars: ✭ 27 (-99.83%)
Mutual labels:  interview, interview-questions, interview-preparation, system-design
Low Level Design Primer
Dedicated Resources for the Low-Level System Design. Learn how to design and implement large-scale systems. Prep for the system design interview.
Stars: ✭ 2,706 (-83.44%)
Mutual labels:  interview, interview-questions, interview-preparation, system-design
Awesome Scalability
The Patterns of Scalable, Reliable, and Performant Large-Scale Systems
Stars: ✭ 36,688 (+124.5%)
Mutual labels:  interview, interview-questions, system, system-design
How To Prepare For Google Interview Swe Sre
This repository includes resources which are more than sufficient to prepare for google interview if you are applying for a software engineer position or a site reliability engineer position
Stars: ✭ 251 (-98.46%)
Mutual labels:  interview, interview-questions, interview-preparation, system-design
Interviewguide
《大厂面试指北》——包括Java基础、JVM、数据库、mysql、redis、计算机网络、算法、数据结构、操作系统、设计模式、系统设计、框架原理。最佳阅读地址:http://notfound9.github.io/interviewGuide/
Stars: ✭ 3,117 (-80.93%)
Mutual labels:  interview, interview-questions, interview-preparation, system-design
Awesome-Software-Engineering-Interview
No description or website provided.
Stars: ✭ 409 (-97.5%)
Mutual labels:  interview, interview-questions, interview-preparation, system-design
System Design Interview Questions
A curated list of System Design interview questions for SDE-1 (Experienced),SDE-2 and above.
Stars: ✭ 205 (-98.75%)
Mutual labels:  interview, interview-questions, interview-preparation, system-design
Interviewguide
计算机校招、社招面试八股文整理,也是《逆袭进大厂》唯一仓库,目前已收录 C/C++ 、操作系统、数据结构、计算机网络、MySQL、Redis等面试资料,未来打算继续收录Java、Python、Go等面试常见问题,坚持将此仓库维护下去。
Stars: ✭ 288 (-98.24%)
Mutual labels:  interview, interview-questions, interview-preparation, system
Awesome Javascript Interviews
Popular JavaScript / React / Node / Mongo stack Interview questions and their answers. Many of them, I faced in actual interviews and ultimately got my first full-stack Dev job :)
Stars: ✭ 939 (-94.25%)
Mutual labels:  interview, interview-questions, interview-preparation, system-design
Leetcode
👏🏻 leetcode solutions for Humans™
Stars: ✭ 1,129 (-93.09%)
Mutual labels:  interview, interview-questions, interview-preparation
Leetcode In Swift
My solutions to LeetCode problems written in Swift
Stars: ✭ 150 (-99.08%)
Mutual labels:  interview, interview-questions, interview-preparation
Awesome Coding Interview Question Patterns
The most common question-patterns for any coding-interview
Stars: ✭ 196 (-98.8%)
Mutual labels:  interview, interview-questions, interview-preparation
System Design And Architecture
Learn how to design large-scale systems. Prep for the system design interview.
Stars: ✭ 1,005 (-93.85%)
Mutual labels:  interview, interview-questions, system-design
Angular Interview Questions
A list of helpful Angular interview questions you can use to interview potential candidates, test yourself or completely ignore.
Stars: ✭ 967 (-94.08%)
Mutual labels:  interview, interview-questions, interview-preparation
Algorithms Leetcode Javascript
Algorithms resolution in Javascript. Leetcode - Geeksforgeeks - Careercup
Stars: ✭ 157 (-99.04%)
Mutual labels:  interview, interview-questions, interview-preparation
Technical Interview Guide
My learning material for technical interviews!
Stars: ✭ 76 (-99.53%)
Mutual labels:  interview, interview-questions, interview-preparation
Cs Fundamentals
🎓 Data structures and algorithms
Stars: ✭ 869 (-94.68%)
Mutual labels:  interview, interview-questions, interview-preparation
Interview Prep
Everything you need to know to get the job
Stars: ✭ 69 (-99.58%)
Mutual labels:  interview, interview-questions, interview-preparation
Machine Learning Interview
Machine Learning Interviews from FAANG, Snapchat, LinkedIn. I have offers from Snapchat, Coupang, Stitchfix etc. Blog: mlengineer.io.
Stars: ✭ 3,086 (-81.12%)
Mutual labels:  interview-questions, interview-preparation, system-design
Cs Job Advice
Interview preparation geared towards getting your first job in the field.
Stars: ✭ 128 (-99.22%)
Mutual labels:  interview, interview-questions, interview-preparation

logo

How to prepare system design questions for an IT company

System design is a very broad topic. Even a software engineer with many years of working experience at a top IT company may not be an expert on system design. If you want to become an expert, you need to read many books, articles, and solve real large scale system design problems.

This repository only teaches you how to handle the system design interview with a systematic approach in a short time. You can dive into each topic if you have time. Of course, welcome to add your thoughts!

Table of Contents

[] System Design Interview Tips:

Clarify the constraints and identify the user cases

Spend a few minutes questioning the interviewer and agreeing on the scope of the system. Remember to make sure you know all the requirements the interviewer didn't tell you about in the beginning.

User cases indicate the main functions of the system, and constraints list the scale of the system such as requests per second, requests types, data written per second, data read per second.

High-level architecture design

Sketch the important components and the connections between them, but don't go into some details. Usually, a scalable system includes webserver (load balancer), service (service partition), database (primary/secondary database cluster plug cache).

Component design

For each component, you need to write the specific APIs for each component. You may need to finish the detailed OOD design for a particular function. You may also need to design the database schema for the database.

[] Basic Knowledge about System Design:

Here are some articles about system design related topics.

Of course, if you want to dive into system related topics, here is a good collection of reading list about services-engineering, and a good collection of material about distributed systems.

[] Company Engineering Blogs:

If you are going to have an onsite with a company, you should read their engineering blog.

[] Products and Systems:

The following papers/articles/slides can help you to understand the general design idea of different real products and systems.

[] Hot Questions and Reference:

There are some good references for each question. The references here are slides and articles.

Design a CDN network
Reference:

Design a Google document system
Reference:

Design a random ID generation system
Reference:

Design a key-value database
Reference:

Design the Facebook news feed function
Reference:

Design the Facebook timeline function
Reference:

Design a function to return the top k requests during past time interval
Reference:

Design an online multiplayer card game
Reference:

Design a graph search function
Reference:

Design a picture sharing system
Reference:

Design a search engine
Reference:

Design a recommendation system
Reference:

Design a tinyurl system
Reference:

Design a garbage collection system
Reference:

Design a scalable web crawling system
Reference:

Design the Facebook chat function
Reference:

Design a trending topic system
Reference:

Design a cache system
Reference:

[] Good Books:

[] Object Oriented Design:

Tips for OOD Interview

Clarify the scenario, write out user cases

Use case is a description of sequences of events that, taken together, lead to a system doing something useful. Who is going to use it and how they are going to use it. The system may be very simple or very complicated.

Special system requirements such as multi-threading, read or write oriented.

Define objects

Map identity to class: one scenario for one class, each core object in this scenario for one class.

Consider the relationships among classes: certain class must have unique instance, one object has many other objects (composition), one object is another object (inheritance).

Identify attributes for each class: change noun to variable and action to methods.

Use design patterns such that it can be reused in multiple applications.

Useful Websites

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].