I have reviewed several resources related to system design, and I will summarize them in a resource link format. There are many videos that I haven't been able to watch. Additionally, some content may include topics that seem somewhat unrelated.
Motivation
The reason I explored various resources is that I wanted to know if I could learn about system design in a systematic way and to gain insights into it. To put it another way, I was looking for clues to enhance my abilities in system design.
When it comes to the ability in system design, I believe it largely depends on craftsmanship and experience, but I thought there might be many things worth knowing as knowledge. Therefore, I decided to read a wide range of articles.
Of course, just because I read them doesn't mean my abilities have improved, and I don't feel that way at all. However, I believe I have learned quite a bit about what I should know and the points to consider, so I feel like I have gained useful information for the future.
Resource List
GitHub
- donnemartin/system-design-primer
- Covers the basic concepts of system design. It seems to be maintained, but there are some links to 404 articles and seemingly outdated content.
- shashank88/system_design
- A collection of resources for approaches to start preparing for system design interviews.
- yangshun/tech-interview-handbook
- Content related to coding interviews rather than system design.
- charlax/professional-programming
- Not specifically focused on system design, but insights on various aspects of software development. There are discussions on system design as well. It covers a wide range of areas necessary for engineering.
- karanpratapsingh/system-design
- A concise summary of the basics of system design.
- It covers basic content and organizes a variety of topics well.
- checkcheckzz/system-design-interview
- A collection of article links related to system design.
- binhnguyennus/awesome-scalability
- A collection of article links related to system design. There are many resources categorized by keywords.
- System Design Cheatsheet
- More like a list of keywords related to system design than a cheat sheet.
- ByteByteGoHq/system-design-101
- Easy to understand with accompanying diagrams.
- mehdihadeli/awesome-software-architecture
- A collection of information about software architecture.
Articles
- Scalable Web Architecture and Distributed Systems
- An example of best practices when building the web as a distributed system.
- Enterprise Integration Patterns - Messaging Patterns
- A collection of examples about messaging patterns.
- tianpan.co
- Contains concise architecture examples and theories with minimal explanations.
- hiredintech.com
- A step-by-step explanation of approaches to system design interviews, with example problems.
- Technical Interview Questions
- A site for learning about technical interviews. It seems quite useful for job hunting at tech companies overseas.
- Various quizzes are available, including a category for system design, with many questions and answers (discussions?) that seem educational.
- How to Nail the System Design Interview + Top System Design Interview Questions and Answers
- An overview of approaches to system design interviews.
- System Design Interview Questions – Concepts You Should Know
- A collection of tips on what to know when tackling system design interviews.
- highscalability.com
- Some articles from this site are also featured in the system-design-primer. There are many case studies from various companies.
- How to prepare for the System Design Interview in 2023
- A well-organized article on preparing for system design interviews.
- Google System Design Interview Preparation Doc | Complete Guide
- A summary of preparation for Google's system design interview.
- An Introduction to System Design Interviews December 20, 2021
- An introductory article about system design interviews, briefly describing the approaches.
- System Design Interviews: A Step-By-Step Guide
- Describes approaches to system design interviews.
- 6 Interview Questions for System Designers (With Example Answers)
- Simple example problems and answers regarding system design interviews.
- Crack the System Design interview: tips from a Twitter software engineer
- Tips for system design interviews from a Twitter engineer.
- System Design Interview Tutorial – The Beginner's Guide to System Design
- An approach to interviews using examples of system design on YouTube.
- The complete guide to cracking the System Design interview
- An approach to system design interviews and a collection of example links.
- System design interview prep (relax, start here)
- Basic preparation for system design interviews.
- System Design Interview Preparation Tips
- Tips for system design interviews.
- Architecture Issues Scaling Web Applications
- An article that succinctly discusses scaling applications and performance tuning.
- Little's Law in Performance Load Testing
- Discusses Little's Law in performance load testing.
- It seems good to remember this law when considering performance.
- How To Determine Web Application Thread Pool Size
- Discusses how to determine the thread pool size for web applications.
- An approach considering Little's Law.
- principles.design
- A collection of design principles not limited to system design.
Books
- Fundamentals of Software Architecture
- A book discussing evaluation perspectives and architecture patterns in software architecture.
- Software Architecture Hardparts
- A book discussing difficult problems in approaches to distributed systems.
- I want to reread it...
- It is a book I helped review the translation of, so I have a personal connection to it.
- Data-Oriented Application Design
- It seems to stray quite a bit from the topic of system design, but I think there are many parts that relate to the design of distributed systems, so I included it.
- I read the newly published System Design Interview.
- The Japanese translation of System Design Interview – An insider's guide.
- While I already know some of the content from reading donnemartin/system-design-primer, it seems that books of this kind are not often published in Japan, so I want to keep a copy on hand.
- ByteByteGo
- A service run by the author.
- It seems to be a paid service with some free content, but it might be worth subscribing since it seems educational.
- The afterword mentions a Discord channel run by the author discussing system design, so I joined.
Videos
- System Design - Gaurav Sen
- A collection of videos explaining key approaches and examples in system design.
- SYSTEM DESIGN INTERVIEW PREPARATION SERIES
- A collection of videos explaining system design using services from various companies.
- CS75 (Summer 2012) Lecture 9 Scalability Harvard Web Development David Malan
- A video of a class at Harvard focusing on scalability.
- Probably quite famous.
Slides
- Selecting and Utilizing Messaging Services to Achieve "Loose Coupling"
- Slides organized about comparing and considering the use of messaging services.
- Includes introductions to AWS products.
- Understanding Data-Oriented Application Design in 30 Minutes - Data Engineering Study #18
- Clearly organizes the key points of that difficult-to-understand book.