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
related reading
- Everything I know about good system designseangoedecke.com
- Everything I know about good API designseangoedecke.com
- Do the simplest thing that could possibly workseangoedecke.com
- Notes on Distributed Systems for Young Bloods – Something Similarsomethingsimilar.com
- GitHub - donnemartin/system-design-primer: Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.github.com
- System Design Interview Guide for Senior Engineersinterviewing.io
- GitHub - karanpratapsingh/system-design: Learn how to design systems at scale and prepare for system design interviewsgithub.com
- System Design Concepts For Senior Engineersinterviewing.io
- Mediuminterviewnoodle.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
- 4 Software Design Principles I Learned the Hard Wayread.engineerscodex.com