System design (HLD+LLD)

  • There are two kinds of designs included while designing any system

    • High-Level Design (HLD)

    • Low-Level Design (LLD)

  • Lets describe them in details

    • High-Level Design:

      • It includes top-level design of our entire application Like how much scalability, cost, request application can handle at a time.

        • This work is mostly done by the Principle Engineers or Product Managers

        • But in interviews, it is expected that at least the candidate should have a basic idea about these terminologies.

        • Like what are Load balancers, Caching, Compute Power, SQL vs NoSQL, Streaming, Data Modeling, etc. Few important topics are like

          • Design Twitter

          • Design Prime Music

          • Design Google Drive

          • Design Uber

          • Design Netflix

          • Design Instagram

  • Low-Level Design:

    • Low-Level Design is also known as machine coding round in interviews it includes questions like design a basic crud operation of any system and then writes code for that with test cases and deployment.

    • In this round interviewer want to check your DSA knowledge as well as OOPs knowledge.

    • Suppose in the given problem like(Create a note taking app) interviewer will ask questions like how you will organize data, how to fetch data, which data structure to use and why, test cases, UML, ER Diagram, etc.

    • In organizations when any project comes then HLD is done by the PMs but the low-level design is done by the SDE-1, SDE-2. It is like breaking a big problem into smaller units and then solving it.

    • So while preparing for an interview or going for a job System Design is always very important in both places. And this comes with the practice of the questions asked in different interviews.

Last updated