I have been learning System Design lately. And one of the thing I notice time and time again is how useful Algorithms, Data Structures and Design Patterns are.

For example: A message queue like Kafka is not only simple conceptually but scales to handle much large data.

This is not to say that once can go an build some things advanced by themselves.

There goes a lot into making a software. Every tiny improvement. Edge case and it’s bugfixes are a contribution of years of research.

But to know that something is an extension of simple concepts like Queue and Pub/Sub is humblings. That the tools that are built are just a combination of ideas that were arranged and executed well.