Courses / Featured
The Holy Grail
A Distinguished Engineer's Curriculum. From transistors to lock-free data structures — the complete path from confused beginner to principal engineer who knows the internals of everything.
The JVM as Your Operating System
Object layout, compressed OOPs, autoboxing costs, GC fundamentals, escape analysis, JIT compilation, and measuring memory with JOL.
Arrays — The Hard and Deep Way
Contiguous allocation, cache-friendly traversal, ArrayList from scratch with amortized proofs, circular buffers, sparse arrays, and bitsets.
Linked Structures
Reference semantics, singly and doubly linked lists from scratch, cache hostility measured on real hardware, Floyd's cycle detection, skip lists.
Stacks, Queues, and Deques
Array-backed and linked implementations, ArrayDeque from scratch, monotonic stacks, expression evaluation, and binary heaps.
Hashing — The Mathematics of O(1)
Hash function theory, collision resolution, HashMap from scratch, Java 8 treeification, consistent hashing, Bloom filters, HyperLogLog.
Trees — Binary to Balanced to Ugly
BST, AVL, Red-Black trees, B-trees, segment trees, Fenwick trees, tries, suffix arrays, treaps, and splay trees — all from scratch.
Heaps and Priority Structures
Binary heaps, d-ary heaps, binomial heaps, Fibonacci heaps with potential function proofs, pairing heaps, leftist and skew heaps.
Graphs — The Universal Structure
BFS, DFS, topological sort, SCCs, MSTs, Union-Find, Dijkstra, Bellman-Ford, max flow, bipartite matching, and A*.
Sorting and Searching
The comparison lower bound proof, merge sort, quicksort, heapsort, introsort, Timsort internals, radix sort, binary search variants.
Algorithmic Paradigms
Divide and conquer, dynamic programming, classic DP problems, greedy algorithms and matroids, backtracking, randomized algorithms, amortized analysis.
Strings — Behind Grep and Git
KMP, Rabin-Karp, Boyer-Moore, Aho-Corasick, Z-algorithm, Manacher's algorithm, and NFA/DFA regex engines.
The Frontier
Persistent structures, Van Emde Boas, wavelet trees, succinct data structures, LSM trees, CRDTs, lock-free programming, cache-oblivious algorithms.