System design is fundamental to building scalable systems, a core skill required for all software engineers. Your understanding of system design will determine your engineering level. This path follows the bottom-up approach and contains the foundational components a software engineer needs to prepare for the system design interview. Start with a quick refresher on the distributed systems, building blocks, and web architectures. You will learn the RESHADED pattern to design large-scale systems like Netflix, Facebook, Quora, etc. Ultimately, a machine learning system design module will prepare you with best practices to design, develop, and integrate machine learning models in production at scale.
Review basic concepts of distributed system design.
Learn software architecture fundamentals.
Get an overview of the buidling blocks required to design a system.
Practice your system design skills.
Apply machine learning models to modern software systems.