See how it runs.
Build. Reason. Solve.
Follow JavaScript through the engine, build the primitives, then work through interview problems with visual explanations at every step.
Follow the execution.
Bindings, call stacks, closures, browser timers and microtasks. Step through the code and watch its state change.
Open the execution lab →- 01 · Bindings & hoisting
- 02 · Calls & lexical scope
- 03 · Closures & memory
- 04 · Timer lifecycle
- 05 · Promise executor
- 06 · Timer vs Promise
- 07 · Chain interleaving
- 08 · Nested microtasks
- 09 · await: already fulfilled
- 10 · await: still pending
- 11 · Blocking & rendering
- 12 · Final challenge
Turn understanding into working code.
Follow the chapters in order. In each lesson: understand the idea, trace an example, predict a result, complete a small implementation, then review its boundaries. The full challenge is optional.
Build intuition.
Small, visible steps.
Solve examples by hand. Try brute force. Find the repeated work. Then follow an optimized algorithm through every call, variable and return.
Maximum path sum →Maximum path sum in a binary tree
Learn why a complete path can use two child branches, but a value returned to a parent can use only one. Includes interactive path selection, eight test cases, two step-by-step visualizers and runnable JavaScript.