System Design

System Design is the process of defining the architecture, components, data flow and interfaces needed to build a reliable system as per the requirements specified by a business or end user. Knowledge of systems and components needed to designing one like caching, scalability, sharding etc. is a must know software engineering concepts and is increasingly becoming an essential part of all major tech interviews these days. This section is specifically engineered with topics ranging from basic to advanced level to help you rock your system design interviews.