Design tinyurl geeksforgeeks7/23/2023 ![]() DB basics: types of DB's (SQL vs noSQL etc ), hashing and indexing, EAV based databases, Sharding, caching for databases, master-slave etc.Concurrency basics: threads, processes, threading in the language you know.I personally love networking-a top down approach. cs75 on youtube (1st lecture) should give a broad overview. Should know the TCP/IP stack, basics of how Internet, HTTP, TCP/IP work at the minimum. If you already have decent knowledge try stallings book on OS) (For starters silbershatz should be enough. Operating system basics: how a file system, virtual memory, paging, instruction execution cycle etc work.Basicsīut before you begin, here are some topics(in no particular order) which in my opinion you should have a decent idea of before proceeding. These talks should give you a starting point on how to think about such problems. System Design Interview Preperation Series by CodeKarle This is a collection of some of the most commonly asked system design interview question explain in a very detailed and straight forward manner. It's focussed more on data-oriented applications though. Starts from simple stuff like load balancing and message queues, then moves to building full systems like Whatsapp and Tinder.įeel free to go through other lectures if needed.ĭavid huffman's talk, scaling up talk ( Youtube link)ĭesigning data intensive appliations This is by far one of the best books about large-scale systems and the practical challenges encountered during building them. Steps how I approach the system design questions in interviewsįor a very broad overview please go through these lectures, really useful:. ![]() This is a collection of links/documents for the following use cases:Ī) Prepare for a system design or open-ended rounds.ī) Learn more about how large-scale systems work and thought process of designing a new system. Along with that, there is a recent trend for companies to have an open-ended interview with system design questions, which is at times hard for engineers of all levels if they haven't gotten the opportunity to work on such systems themselves. What this repository aims to achieve, is for software engineers and students to get a rough idea of how the thought process of designing a large scale works and how big companies have managed to solve really hard problems. I do not want to give the impression that it's something that can be learnt in a month. Learning about and implementing large-scale distributed system is not easy. How to prepare for and answer system design questions.
0 Comments
Leave a Reply. |