System Design Interview Prep Guide

System Design Interview Prep Guide

Có khá nhiều câu hỏi về kinh nghiệm luyện system design interview, nên mình xin được chia sẻ kinh nghiệm luyện system design của mình và các resources mà mình thường dùng. Mỗi lúc sắp đi interview lại lôi ra xài, cũng được multiple offers nên chắc là chất lượng đảm bảo.

Guide luyện system design interview của mình như sau:

  1. Read this to understand the system design interview format and step-by-step guide:https://www.designgurus.io/blog/step-by-step-guide
  2. Follow these courses to quickly grab basic concepts and high level design: Grokking System Design FundamentalsGrokking the System Design InterviewGrokking Modern System Design Interview for Engineers & Managers
  3. Read Alex Xu’s system design books: volume 1 and volume 2
  4. Read Designing Data Intensive Applications: at least 3rd, 5th, and 6th chapter.
  5. If you are currently working in tech, then take full advantage by studying all the technical review documentation of the systems you're most interested in learning about within your company. This is your chance to learn the most from real world systems and far beyond theoretical knowledge.
  6. Try to implement some system from scratch. There’s a good resource that Hieu Pham just shared about codecraftershttps://www.facebook.com/.../permalink/1545563609600220
  7. Get a buddy to do mock interview or just pay some mock interview sessions: TIPS: contact Phạm Quang Vũ or use https://interviewing.io/
  8. Follow some engineering blogs and read research papers of some complex systems.
A FEW OTHER SYSTEM DESIGN RESOURCES:

Online Resources:

  1. Pragmatice engineer newsletter
  2. Neo K.'s System Design Newsletter makes engineering blogs more digestible: https://newsletter.systemdesign.one/?r=n49ky
  3. Google Senior Staff (L7) Engineer's detailed whitepaper notes: https://stephenholiday.com/notes/
  4. system-design-primer
  5. ByteByteGo system design newsletter by Alex Xu
  6. Architecture Notes
  7. Quastor System Design Case Studies: https://quastor.substack.com/
  8. 32 system design resources

Engineering Blogs:

  1. Figma Engineering: https://www.figma.com/blog/engineering/
  2. OpenAI Software Engineering: https://openai.com/research?topics=software-engineering
  3. Engineering @ Meta: https://engineering.fb.com/
  4. Snap Engineering: https://eng.snap.com/
  5. Stripe Engineering: https://stripe.com/blog/engineering
  6. Nextflix Tech: https://netflixtechblog.com/
  7. Pinterest Engineering: https://medium.com/pinterest-engineering
  8. Quora Eng: https://quoraengineering.quora.com/

Youtube Channels:

  1. Martin Kleppman's channel - https://www.youtube.com/@kleppmann
  2. CMU Database Group - https://www.youtube.com/@CMUDatabaseGroup
  3. MIT6.824: Distributed Systems - https://www.youtube.com/@6.824
  4. DistSys Reading Group - https://www.youtube.com/@distsysreadinggroup596

Books:

  1. Designing Data Intensive Applications by Martin Kleppman
  2. System Design Interview by Alex Xu: volume 1 and volume 2
  3. Building Microservices by Sam Newman