These are notes which will give you a good start at understanding high level system design. The first section of the notes discuss the main concepts that you should know about before designing a scalable system. The second section focuses on designing them.
You should have a basic understanding of concepts such as APIs, client-server models, what requests are and a little bit of experience with backend development. If you are not aware of basic concepts in backend development like APIs, servers, databases, you will have a hard time reading these notes, so I would recommend you to take a look at other resources. In some places, I've also assumed that you have a basic understanding of concepts related to RDBMS (If you're a computer science undergrad, you will learn that in your course).
The notes have been deployed here: https://hash-define-organization.github.io/hld-primer/
If for some reason you don't like the interface, you can open this file and read them directly on GitHub.
You're most welcome to make any kind of contributions that you want, be it fixing grammatical errors, improving a section, or adding images. You're also free to add missing topics that you feel should have been in these notes, but make sure to keep the language simple.
Make sure to always open an issue before making a pull request.
Made with ♥ - Team Hash Define
May the code be with you 🧑💻