From fde01dc407e6e643cb81901fc80eac2410a9a51b Mon Sep 17 00:00:00 2001 From: Yangshun Date: Mon, 6 Sep 2021 19:55:49 +0800 Subject: [PATCH] website: add page on system design --- contents/system-design.md | 32 ++++++++++++++++++++++++++++++++ website/sidebars.js | 1 + 2 files changed, 33 insertions(+) create mode 100644 contents/system-design.md diff --git a/contents/system-design.md b/contents/system-design.md new file mode 100644 index 00000000..f109aea9 --- /dev/null +++ b/contents/system-design.md @@ -0,0 +1,32 @@ +--- +id: system-design +title: System Design +--- + +The objective of system design interviews is to evaluate a candidate's skill at designing real-world software systems involving multiple components. System design questions are typically given to more senior candidates (with a few years of experience). Interns aren't typically given system design questions as it is hard to expect interns to have sufficient and relevant industry experience to answer this type of questions well. + +Some common questions include: + +- Design a URL shortener (e.g. Bitly) +- Design a social media website (e.g. Twitter) +- Design a video watching website (e.g. YouTube) +- Design a chatting service (e.g. Telegram, Slack, Discord) +- Design a file sharing service (e.g. Google Drive, Dropbox) +- Design a ride sharing service (e.g. Uber, Lyft) +- Design a photo sharing service (e.g. Flickr, Pinterest) +- Design an e-commerce website (e.g. Amazon, eBay) +- Design a jobs portal (e.g. LinkedIn, Indeed) +- Design a web crawler (e.g. Google) + +System design content is still work-in-progress, but there are some resources to help you in the meanwhile: + +## Courses + +- [Grokking the System Design Interview](https://www.educative.io/courses/grokking-the-system-design-interview?aff=x23W) - I've personally tried this and have referred many people to use this. Highly recommended! +- [Grokking the Advanced System Design Interview](https://www.educative.io/courses/grokking-adv-system-design-intvw?aff=x23W) - I haven't tried this but it's by the same people who created "Grokking the System Design Interview", so it should be good! In my opinion you probably wouldn't need this unless you're very senior or going for a specialist position. + +## Resources + +- [System Design Primer](https://github.com/donnemartin/system-design-primer) - Most comprehensive resource on system design out there. Recommended only if you have a ton of time to spare. +- [System Design Interview](https://github.com/checkcheckzz/system-design-interview) - Contains many links to tips about system design, system design-related topics and engineering blogs of famous companies. +- [System Design Cheatsheet](https://gist.github.com/vasanthk/485d1c25737e8e72759f) - Brief and concise content. Serves as a good revision right before your system design interview. diff --git a/website/sidebars.js b/website/sidebars.js index 047b7857..ba2fac59 100755 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -25,6 +25,7 @@ module.exports = { 'interviewer-cheatsheet', ], }, + 'system-design', { type: 'category', label: 'Behavioral Round',