This article was originally published on bmf-tech.com.
I have gone through several resources related to system design, so I will compile them here as a link collection. There are many video resources I haven't watched yet. Additionally, some content might include topics that seem somewhat unrelated.
Motivation
The reason I researched various materials was to see if I could systematically learn about system design and because I wanted to enhance my skills in this area. To put it simply, I was looking for a starting point to improve my system design abilities.
When it comes to system design skills, I believe they largely depend on experience, like craftsmanship. However, I thought there might be many things that are good to know as knowledge, so I looked through a wide range of articles.
Of course, just reading them didn't improve my skills, nor did I expect it to, but I feel like I learned quite a bit about what I should know and points to consider, so I feel like I gained useful information for the future.
List of Resources
GitHub
-
donnemartin/system-design-primer
- It seems to cover the basic concepts of system design comprehensively. Although it is maintained, there are some 404 articles and links to outdated content.
-
shashank88/system_design
- A collection of resources for starting to prepare for system design interviews.
-
yangshun/tech-interview-handbook
- Content related to coding interviews, not system design.
-
charlax/professional-programming
- Not specialized in system design, but covers various insights into software development in general. It also includes system design discussions. Covers a wide range of areas necessary for engineering.
-
karanpratapsingh/system-design
- Concisely summarizes the basics of system design.
- Basic content with a well-organized range of topics.
-
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. Rich in numbers by keyword.
-
System Design Cheatsheet
- More like a list of system design keywords than a cheat sheet.
-
ByteByteGoHq/system-design-101
- Easy to understand with illustrative diagrams.
-
mehdihadeli/awesome-software-architecture
- Aggregated information on 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
- Introduces several examples of messaging patterns.
-
tianpan.co
- Briefly describes architecture examples and theories with minimal explanation.
-
hiredintech.com
- Step-by-step explanation of approaches to system design interviews, with examples.
-
Technical Interview Questions
- A site for learning about technical interviews. Seems very useful for job hunting at overseas tech companies.
- Various quizzes are available, and there is a system design category. There seem to be various questions and answers (discussions?), which could be educational.
-
How to Nail the System Design Interview + Top System Design Interview Questions and Answers
- 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 introduced in the system-design-primer. Rich in examples 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
- Summary of Google's system design interview preparation.
-
An Introduction to System Design Interviews December 20, 2021
- Introduction article on system design interviews. Briefly describes 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 examples and answers for system design interviews.
-
Crack the System Design interview: tips from a Twitter software engineer
- Tips on system design interviews from a Twitter engineer.
-
System Design Interview Tutorial – The Beginner's Guide to System Design
- Approach methods for interviews using system design examples on YouTube.
-
The complete guide to cracking the System Design interview
- Approach methods and example link collection for system design interviews.
-
System design interview prep (relax, start here)
- Preparation and basics for system design interviews.
-
System Design Interview Preparation Tips
- Tips for system design interviews.
-
Architecture Issues Scaling Web Applications
- An article that succinctly states the key points about scaling and performance tuning of applications.
-
性能負荷テストにおけるリトルの法則
- About Little's Law in performance load testing.
- Good to remember this law when considering performance.
-
How To Determine Web Application Thread Pool Size
- How to determine the thread pool size of web applications.
- Approach considering Little's Law.
-
principles.design
- A collection of design principles, not limited to system design.
Books
-
ソフトウェアアーキテクチャの基礎
- A book on evaluation perspectives and architecture patterns of software architecture.
-
ソフトウェアアーキテクチャ Hardparts
- A book about difficult issues in approaches to distributed systems.
- Want to reread...
- A book I helped with as a volunteer for translation review, so I have a special attachment.
-
データ指向アプリケーションデザイン
- Although it seems quite far from the topic of system design, I think there are many parts that relate to the design of distributed systems, so I included it.
-
システム設計の面接試験 has been published, so I read it.
- System Design Interview – An insider's guide Japanese translation.
- Although the content is somewhat familiar if you read donnemartin/system-design-primer, I feel like this type of book is not often published in Japan, so it's a book I want to keep on hand.
-
ByteByteGo
- A service operated by the author.
- Although it seems to be a paid service with some free content, it seems educational, so it might be worth subscribing.
- A Discord channel about system design operated by the author was mentioned in the afterword, so I joined.
Videos
-
System Design - Gaurav Sen
- A collection of videos explaining major approaches and examples in system design.
-
SYSTEM DESIGN INTERVIEW PREPARATION SERIES
- A collection of videos explaining system design using services from various companies as examples.
-
CS75 (Summer 2012) Lecture 9 Scalability Harvard Web Development David Malan
- A lecture video on scalability at Harvard University.
- Probably quite famous.
Slides
-
「疎結合」を実現するメッセージングサービスの選択と利用
- Slides organized on the comparison and consideration of messaging services.
- Includes introduction of AWS products.
-
30分でわかるデータ指向アプリケーションデザイン - Data Engineering Study #18
- Organizes the key points of that difficult-to-understand book in an easy-to-understand manner.
Top comments (0)