Systems design is the process by which we, as engineers, make decisions regarding the elements of a complex application. These system elements-- such as the data models and structures, the overall architecture, how we think about modules and components, and the different interfaces of those components-- have to be carefully thought through.
We want our designs to ensure speed, reliability, and stability down the line. This course focuses on the design of systems that are designed to be robust and stable. These types of interview questions and rounds show up frequently and in the real world, especially as you become more experienced in the field.
Let's learn how to architect some reliable, scalable systems! We'll start with some building blocks, then parse through some examples, and then move on to deep dives.