Algorithms you should know before you take system design interviews

July 6, 2022

WARNING: This post is over a year old. Some of the information this contains may be outdated.

Where to learn more?

Geohash: https://www.pubnub.com/learn/glossary/what-is-geohashing/

Quadtree: https://engblog.yext.com/post/geolocation-caching

Consistent hashing: https://www.toptal.com/big-data/consistent-hashing

Leaky bucket /token bucket: https://www.quora.com/What-is-the-difference-between-token-bucket-and-leaky-bucket-algorithms

Trie: https://en.wikipedia.org/wiki/Trie

Rsync: https://rsync.samba.org/tech_report/

Raft: https://raft.github.io/

Paxos: https://martinfowler.com/articles/patterns-of-distributed-systems/paxos.html

Bloom filter: https://www.linkedin.com/posts/alex-xu-a8131b11_systemdesign-coding-interviewtips-activity-6917494340315463680-O0sG/

Merkle tree: https://en.wikipedia.org/wiki/Merkle_tree

Hyperloglog: https://engineering.fb.com/2018/12/13/data-infrastructure/hyperloglog/

Count-min sketch: https://florian.github.io/count-min-sketch/

Hierarchical timing wheels: https://www.cse.wustl.edu/~cdgill/courses/cs6874/TimingWheels.ppt

Operational transformation: https://en.wikipedia.org/wiki/Operational_transformation

System Design YouTube channel: https://www.youtube.com/channel/UCZgt6AzoyjslHTC9dz0UoTw

Source: https://blog.bytebytego.com/p/algorithms-you-should-know-before