Everything I know about good system design
I see a lot of bad system design advice. One classic is the LinkedIn-optimized “bet you never heard of queues” style of post, presumably aimed at people who are new to the industry. Another is the Twitter-optimized “you’re a terrible engineer if you ever store booleans in a database” clever trick1. Even good system design advice can be kind of bad. I love Designing Data-Intensive Applications, but I don’t think it’s particularly useful for most system design problems engineers will run into. What is system design? In my view, if software design is how you assemble lines of code, system design is how you assemble services. The primitives of software design are variables, functions, classes, and so on. The primitives of system design are app servers, databases, caches, queues, event buses, proxies, and so on. This post is my attempt to write down, in broad strokes, everything I know about good system design. A lot of the concrete judgment calls do come down to experience, which I can’t c
I see a lot of bad system design advice. One classic is the LinkedIn-optimized “bet you never heard of queues ” style of post, presumably aimed at people who are new to the industry. Another is the Twitter-optimized “you’re a terrible engineer if you ever store booleans in a database” clever trick 1 . Even good system design advice can be kind of bad. I love Designing Data-Intensive Applications , but I don’t think it’s particularly useful for most system design problems engineers will run into. What is system design? In my view, if software design is how you assemble lines of code, system des
saved by
- Yung-Hsuan Yang
- Anson Yu
- Amir
- Jaclyn
- Pier-Luc Nadeau-Labadie
- Elizabeth Qiu
- Karan MJ
- Shihao Cao
- Aryan Naik
- Bo Lau
- Chloe Yan
- Maanav Khaitan
related reading
- Everything I know about good system designseangoedecke.com
- GitHub - donnemartin/system-design-primer: Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.github.com
- Everything I know about good API designseangoedecke.com
- Notes on Distributed Systems for Young Bloods – Something Similarsomethingsimilar.com
- Core Concepts for System Design Interviews | Hello Interview System Design in a Hurryhellointerview.com
- Essays on programming I think about a lot | benkuhn.netbenkuhn.net
- System Design Concepts For Senior Engineersinterviewing.io
- Mediuminterviewnoodle.com
- Building data-centric apps with a reactive relational databaseriffle.systems
- How to design resilient and large scale data systemsblog.dataengineer.io
- GitHub - karanpratapsingh/system-design: Learn how to design systems at scale and prepare for system design interviewsgithub.com
- learning-notes/books/designing-data-intensive-applications.md at master · keyvanakbary/learning-notes · GitHubgithub.com