ByteByteGo Newsletter

Share this post

Algorithms you should know before you take system design interviews

blog.bytebytego.com

Algorithms you should know before you take system design interviews

Alex Xu
Jun 5, 2022
153
4
Share this post

Algorithms you should know before you take system design interviews

blog.bytebytego.com

I put together a list and explained why they are important. Those algorithms are not only useful for interviews but good to understand for any software engineer. 

One thing to keep in mind is that understanding “how those algorithms are used in real-world systems” is generally more important than the implementation details in a system design interview.

What do the stars mean in the diagram?

It’s very difficult to rank algorithms by importance objectively. I’m open to suggestions and making adjustments. 

Five-star: Very important. Try to understand how it works and why.

Three-star: Important to some extent. You may not need to know the implementation details.

One-star: Advanced. Good to know for senior candidates.

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

Other things made by us:

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

Twitter: https://bit.ly/3HqEz5G

LinkedIn: https://bit.ly/39h22JK

Thanks for reading ByteByteGo Newsletter! Subscribe for free to receive new posts and support my work.

4
Share this post

Algorithms you should know before you take system design interviews

blog.bytebytego.com
4 Comments
Mohamed Ragab
Jul 9, 2022

An explanation of Raft as well by Martin kleppman

https://www.youtube.com/watch?v=uXEYuDwm7e4

Expand full comment
ReplyCollapse
khadar
Oct 26, 2022

Thanks for allowing me to talk about a <a href=https://skillslash.com/data-structures-&-algorithm-system-design> BEST SYSTEM DESIGN COURSE  </a>. For the Best career in Data Structures, I recommend Skillslash is recognized as the <a href=https://skillslash.com/data-structures-&-algorithm-system-design> data structures and algorithms online course </a>. We cover all the essential topics in data science like R, Python, Machine Learning, Deep Learning, Tableau,Full stack etc.

Expand full comment
ReplyCollapse
2 more comments…
TopNewCommunity

No posts

Ready for more?

© 2023 ByteByteGo
Privacy ∙ Terms ∙ Collection notice
Start WritingGet the app
Substack is the home for great writing