nil pointers
Teaching DS&A · CS research highlights · SWE things · building in public
Stay in the loop
I'd love to tell you when I publish a new post.
Get notified when I write about DS&A or software engineering. Unsubscribe anytime if it's not your vibe.
Prefer RSS? Subscribe via rss.xml.
Toolkit-X: A better way to do DS&A problem lists
Introducing Toolkit-X: a free DS&A toolkit with curated BCtCI problems that can be used like a traditional problem list.
BCtCI Chapter: Set & Map Implementations
Learn how sets & maps are built from scratch, and refine your knowledge of hashing.
BCtCI Chapter: Monotonic Stacks & Queues
Learn how monotonic stacks and queues are two sides of the same idea and how to leverage them in interviews!
Counting Islands in a Grid: DFS or BFS?
A deeper look at this classic grid problem - including some beautiful fractals that unexpectedly appear in the BFS analysis.
Building Lego castles with recurrences, memoization, and math
A walk through recurrences, memoization, and math tricks -- via Lego castles.
BCtCI Free Resources
A comprehensive list of all free resources available from Beyond Cracking the Coding Interview, including chapters, problems, tools, and templates.
BCtCI Chapter: Union-Find
Learn how this fascinating data structure speeds up graph-related operations.
Top-K Problems: Sorting vs Heaps vs Quickselect
The different approaches to finding the k smallest/largest elements in an array.
Queues in JS interviews
JS doesn't have built-in queues, which can be an issue if you have to implement a BFS. Here are the workarounds.
Get Binary Search Right Every Time, Explained Without Code
A binary search recipe that works for every problem, explained without code.
Problem Solving BCtCI Style
A problem walkthrough using the concepts from Beyond Cracking the Coding Interview.
Heapify Analysis Without Math
A proof that heapify takes linear time without using complex equations.
Lazy vs Eager Algorithms
Exploring the tradeoffs between lazy and eager implementations of common algorithms.
Actually Implementing Dijkstra's Algorithm
A comprehensive guide to different implementations of Dijkstra's algorithm, with code.
Breaking Down Dynamic Programming
A step-by-step guide to understanding and implementing dynamic programming algorithms with practical examples.
Iterative Tree Traversals: A Practical Guide
A guide to implementing preorder, inorder, and postorder tree traversals iteratively.

















