Must do Algorithms to ACE System Design Interview
System design interviews play a very important role in any Software development interviews in most of the companies. Not only this, it is very imperative to understand all the concepts behind designing large scale distributed scalable systems.
Obviously, there is no replacement to hands-on experience but if you wish to learn the basic concepts and understand the different algorithms at play then fret not! I have compiled a list of must-do algorithms, techniques and sources that will definitely help you become a better engineer and will ultimately improve your system design skills.
Algorithms required to do before any system design interview:
1) Trie algorithm
2) Reverse index
3) Frugal Streaming
4) Geo-hashing
5) Leaky bucket, Token bucket and its variation
6) Bloom Filters
7) Operational transformation
8) Quadtree / Rtree
9) Loose Counting
10) XMPP / Web Sockets uses
11) HTTP Long polling
12) Consistent Hashing
13)Count min sketch
14)Hyper log
15)Bitmap counters
16)Merkel tree
Some of the good resources available online which can easily help in understanding these concepts more deeply:
1) System design primer in Github (Free).
2) AWS Documentation(Free).
3) Amazon ReInvent videos in youtube(Free).