# README

* [System design Interview](#system-design-interview)
  * [Philosophy](#philosophy)
  * [Intentions](#intentions)
    * [Question driven evolvement](#question-driven-evolvement)
    * [Graph intensive tutorial](#graph-intensive-tutorial)
    * [Translate great Chinese articles to English](#translate-great-chinese-articles-to-english)
  * [References](#references)
    * [Beginner tutorials](#beginner-tutorials)
    * [In depth discussions](#in-depth-discussions)
    * [Graph intensive tutorials](#graph-intensive-tutorials)
    * [Relevant but a bit broader](#relevant-but-a-bit-broader)
    * [In Chinese only](#in-chinese-only)
  * [Roadmap](#roadmap)
  * [Contributions](#contributions)

## System design Interview

### Philosophy

* Coco Chanel [The best things in life are free](https://www.nytimes.com/2015/12/10/opinion/are-the-best-things-in-life-free.html)

> > "The best things in life are free. The second best things are very, very expensive."

* DHH on [Basecamp journey on Observer](https://observer.com/2015/12/the-day-i-became-a-millionaire/)

> > "While the quote above rings true, I’d add that the difference between the best things and the second best things is far, far greater than the difference between the second best things and the twentieth best things. It’s not a linear scale."

* Yanni on [Yanni – “Tribute ”… The “Tribute” Concerts!](https://www.youtube.com/watch?v=ibuNS5hS1js\&list=RDMMZ1m7-gNdiKk\&index=3\&ab_channel=Yanni)

> > I remembered that when I was young, my father would take me for these long walks on these Greek mountains. He was always trying to teach us Simplicity and appreciation to nature. The best things in life, are available to everyone because they are inside us, like truth, imagination, creativity, love, kindness, compassion! Greatness has nothing to do with money, success or possessions.

### Intentions

#### Question driven evolvement

* In real life, software systems are not completely designed, but also evolving with reallife problems.
* The content will try to be structured in a question driven way instead of random solutions haphazardly assembled together.

#### Graph intensive tutorial

* I am a visual learner and graph is always easier for me to understand things with graph. I especially like tech books published by [Manning](https://www.manning.com) because it is so good at illustrating with pictures.
* Earlier I was using [Monodraw](https://monodraw.helftone.com) for pictures. Recently I started using [Excalidraw](https://excalidraw.com) and [Whimscal](https://whimsical.com/) because it was easier to use and maintain.

#### Translate great Chinese articles to English

* There are many professionals translating great English articles (such as InfoQ) to China. However, there isn't a lot of effort in translating great Chinese articles to English.
* Please see this [对中美信息流动不对称的几点思考](https://www.36kr.com/p/1721045843969) for details.

### References

#### Beginner tutorials

* There are so many great system design tutorials for beginners in the market:
  * [donnemartin/system-design-primer](https://github.com/donnemartin/system-design-primer)
  * [checkcheckzz/system-design-interview](https://github.com/checkcheckzz/system-design-interview)
  * [puncsky/system-design-and-architecture](https://github.com/puncsky/system-design-and-architecture)
  * [eileen-code4fun/SystemDesignInterviews](https://github.com/eileen-code4fun/SystemDesignInterviews)
  * Book: [System Design Interview](https://www.amazon.com/System-Design-Interview-insiders-Second/dp/B08CMF2CQF/ref=sr_1_1?dchild=1\&keywords=system+design\&qid=1619578081\&sr=8-1)
  * Course: [Grokking the system design interview](https://www.educative.io/courses/grokking-the-system-design-interview)
  * [Google doc by FAANG engineers](https://docs.google.com/document/d/1pOarvQbjzLd9tz5ZuxktyrYsZ41mbWba5_LUeFj65lI/edit)

#### In depth discussions

* Learning them does help in interviews because most interviews are super busy people. They typically don't have much time thinking about new interview questions. I really want to take the time to mess around and enjoy it because life is short.
* In-depth discussions is the most effective way for me to understand and remember things. This following blogs really demonstrate what type of in-depth discussions I want to have:
  * [Netflix blog](https://netflixtechblog.com)
  * [Pinterest blog](https://medium.com/pinterest-engineering/infra/home)
  * Martin Kleppmann
    * [Talks by DDIA author](https://www.youtube.com/channel/UClB4KPy5LkJj1t3SgYVtMOQ)
    * [Confluent blogs](https://www.confluent.io/blog/author/martin-kleppmann/)
    * [Personal website](https://martin.kleppmann.com/)
  * [Long discussions on random topics: https://kousiknath.medium.com/](https://kousiknath.medium.com)

#### Graph intensive tutorials

* [Takahiko Kawasaki, Co-founder and representative director of Authlete, Inc.,](https://darutk.medium.com/)

#### Relevant but a bit broader

* Blogs:
  * [AWS architecture doc](https://aws.amazon.com/architecture/well-architected/?wa-lens-whitepapers.sort-by=item.additionalFields.sortDate\&wa-lens-whitepapers.sort-order=desc)
  * [Company engineering blogs](https://github.com/aaronwinter/engineering-blogs)
  * [Cool wizard zines explaining basic concepts](https://wizardzines.com)
* Books:
  * [DDIA](https://www.amazon.com/Designing-Data-Intensive-Applications-Reliable-Maintainable/dp/1449373321/ref=sr_1_1?crid=38CARLM3E1P07\&dchild=1\&keywords=designing+data-intensive+applications\&qid=1619579153\&sprefix=intensive+data+app%2Caps%2C208\&sr=8-1)
* Videos courses:
  * [Cloud Academy](https://cloudacademy.com)
  * [InfoQ](https://www.infoq.com/?variant=homepage_collections)

#### In Chinese only

* [极客时间](https://time.geekbang.org)
* [网易云架构师课程](https://mooc.study.163.com/smartSpec/detail/1202858603.htm)
* [东哥IT笔记](https://donggeitnote.com/category/discuss-topic/)
* [美团技术团队](https://tech.meituan.com)
* [即时通讯网](http://www.52im.net/)
* [精选技术文章摘抄](http://learn.lianglianglee.com)
* [铭道模拟面试笔记](https://www.designclub.mingdaoschool.com/)

### Roadmap

* There are two types of TODOs in the repo
  * The first is a topic on the left hand rail directly marked as TODO. It is a topic that I am interested in but haven't got time to learn systematically about it.
  * The second is a TODO listed inside the bottom of a discussion topic. It typically links to a blog / resource that I want to read further but haven't got time to.
* You could see the roadmap of this system design repo at this [Github Project Page](https://github.com/users/DreamOfTheRedChamber/projects/1/views/1)

### Contributions

* Contribution welcomed at [https://github.com/DreamOfTheRedChamber/system-design-interviews](https://github.com/DreamOfTheRedChamber/system-design-interviews)
