High Level Design Roadmap

Pro-tip: Focus on developing an understanding!

Interview Prep | High Level Design Roadmap

Sandeep Kumar

--

Companies don’t want to hire people who can’t develop scalable and resilient systems. The demand for people who can understand the tradeoff of using different tech is always high.

If you are someone with more than a year of experience, your interview preparation schedule should include reading up on System design.

Your response to a HLD question is expected to have parity with the number of years of experience you have.

What is High Level Design?

What is a High-Level design interview?

Book definition — High level design (HLD) explains the architecture that would be used to develop a system, it is also referred to as Sytem design. The architecture diagram provides an overview of an entire system, identifying the main components that would be developed for the product and their interfaces. [Source]

Points to note

  1. You are expected to talk about the components you choose and why you choose them.
  2. There is no correct solution, but be ready to explain every decision you make.

Preparation Path/Roadmap

The High Level Roadmap

We will talk about the preparation path you need to take up. Each of the subsequence sections shall contain links and resources for the same.

Timeline to complete this is 1 hour everyday for 1 month.

[1]
If you are an SDE 2 or above. Watch the video given in this step. Understanding just 20% of it would mean that preparation wouldn’t really be a challenge for you.

Design a parking garage.

[2]
In the next step, Read up on the basics of system design.

[3]
Start going through actual examples.

[4]
Take care that you go through 5–6 complete examples. Pick up fresh questions, start trying to write down your solution, and then go through the solution/explanation.

[5]
Next is assessment time!!

Basics of System design

How to apply High Level System Design

You need to understand that there is a flow to the System design interview. Which mostly looks like this:

  1. Requirement clarification - functional & non-functional
  2. Estimations - Storage, Bandwidth, etc.
  3. Data flow
  4. High-level component design
  5. Detailed design
  6. Identify and address issues (System bottlenecks)

Resources

  • Educative.io To develop an Uber-level understanding of the flow of a system design round. If you watched the video above, you would be able to grasp the article.
  • Educative.io -guide Get an overview of all topics relevant to system design
  • donnemartin/system-design-primer This is a great resource for the basics of System design, and it also contains a number of examples.
  • Leetcode Discuss This is a list of frequently asked design questions you should be aware of. It contains the solutions as well.

A cheat sheet to keep handy -The Sheet

If you are finding it tough to read through these resources. The last section contains links to YouTube videos as well.

Books to check out

  1. System Design Interview — An insider’s guide
  2. System Design Interview — An Insider’s Guide: Volume 2
  3. Design data-intensive application
    This is pretty expensive, but it’s really great for in-depth knowledge. Wouldn't recommend it if you had your interview in a month, as you won't be able to completely grasp all concepts.

Video Resources

Exponent Playlist — I feel they don't provide a really in-depth explanation but conduct a lot of mock interviews with professionals. Hence, it is a confidence booster
  1. System Design Complete Course The one-stop video from Scalar
  2. Gaurav Sen Playlist for System Design
  3. CodeKarle In-depth explanation

5. Actual Interview Experiences

Last step — Self evaluation.

The question descriptions are intentionally kept hidden. Prep up first and come back to test yourself out. These questions are about interview experiences shared by people.

Thank you for reading, and until again! If you have any doubts, let me know in the comments.

👉 Follow me for more content like this.
👨‍💼 Have trouble preparing or qualifying for interviews?

Hire Sandeep Kumar on https://topmate.io/mr_sandeep_kumar
Click on the image above to hire me

LinkedIn | Medium | Leetcode | Topmate | Github

--

--

Sandeep Kumar

Software Engineer, love solving real world problems. Enjoy talking about tech.