Algorithms and high level design, for interviews and for work
DSA and System Design. Worked out.
Study DSA and system design for your coding round and your design round. Each lesson takes about an hour, so you can fit one into an evening after work.
Start the DSA roadmapExplore system design
Free to read, no signup required.
System design, argued from these companies' papers and postmortems.
Sources cited across the course include PostgreSQL, Apache Kafka, MySQL, Notion, Figma, Pinterest, Google, Meta, Netflix, AWS, Apple, OpenAI, Anthropic, Stripe, Microsoft, Cloudflare, Discord, X, Slack, GitHub.
DSA, taught pattern by pattern: 87 of them.
The DSA roadmap teaches these patterns: Thinking like a programmer, Language basics, Time and space complexity, Loops through pattern printing, Working with digits and divisors, Recursion basics, Counting with arrays and maps, Array basics, Hash map lookups, Counting and voting, One pass with running state, Prefix sums, Walking a matrix, Counting during merge sort, Number tricks, Primes and the sieve, Fast power and modular arithmetic, Pascal's triangle and combinations, Bit basics, XOR tricks, Counting and shifting bits, Bitmasks, String basics, Parentheses and nesting, Parsing and conversion, Counting over substrings, Simple sorts, Divide-and-conquer sorts, Pointers from both ends, Rearranging in place, Merging sorted arrays, Longest or shortest window, Fixed-size window, Counting windows, Building stacks and queues, Matching and cancelling, Infix, prefix and postfix, Monotonic stack, Monotonic queue, Lower and upper bounds, Searching a sorted array, Searching the answer, Searching a matrix, Partition search, Singly linked list basics, Doubly linked lists, Fast and slow pointers, Reversing and rewiring, A list and a map together, Pick or skip, Recursion on a stack, Generating every choice, Searching with constraints, Traversals, Depth first: return a value up, Breadth first: level by level, Building and serializing, BST basics, Using the ordering, Building a heap, Top K, Simulating with a heap, Two heaps, Merging k sorted lists, Prefix trees, Tries over bits, Graph basics, Grids as graphs, Fewest steps with BFS, Traversing a graph, Cycle detection, Topological sort, Union-find, Weighted shortest paths, Minimum spanning trees, Special edges and paths, The best choice now, Merging and scheduling, Take it or skip it, Palindromes, Increasing subsequences, Buying and selling with states, Paths in a grid, Knapsack, Two strings, Splitting a range, Pattern matching.
Two courses
- data structures & algorithmsFor the coding roundDSAA roadmap of 23 topics in the order you should learn them. Each pattern has a short lesson and a set of practice problems.
- system designFor the design roundSystem DesignReal systems, designed the way the interview runs. Every number is worked out on the page, and every decision has a diagram.
How to use it
For DSA, start at the top of the roadmap and go in order. Each pattern begins with how to spot it and a short lesson, then lists problems from easy to hard. If your interview is only a few weeks away, use the 147 DSA sheet instead. At three problems a day, it takes seven weeks.
For system design, read one problem breakdown per evening. The top of each breakdown links the core concepts it depends on, so you can read those first if you need to. You do not have to memorise any numbers. Every estimate is worked out step by step, so you can do the same maths in your interview.