Deep dives on data structures, algorithms, system design and technical interviews. Every article explains how things actually work, not just how to use them.
In this article we will learn what genuinely separates SQL and NoSQL databases, why the common answers about scale and schema are mostly wrong, the four NoSQL families and what each is for, and a decision procedure you can defend in a system design interview.
In this article we will learn what consistent hashing is, why the simple modulo approach falls apart when you add a server, how the hash ring works step by step, what virtual nodes solve, and where consistent hashing is used in real systems like Cassandra, DynamoDB and Memcached.
In this article we will learn how breadth-first search and depth-first search actually differ, why BFS finds the shortest path in an unweighted graph and DFS does not, how their memory usage compares on wide and deep graphs, and a decision rule for choosing between them in an interview.
In this article we will learn what the sliding window pattern is, how it turns an O(n²) brute force into an O(n) scan, the difference between fixed-size and variable-size windows, how to recognise a sliding window problem from its wording, and the mistakes that quietly break the invariant.
In this article we will learn what time and space complexity mean, why Big-O notation drops constants, how to analyse loops and recursion step by step, what auxiliary space is, and how to compare two solutions without ever running them.