Closures & Scope, Finally
The mental model that makes JavaScript’s strangest behavior obvious — built through 31 progressive exercises.
Workshops are for the topics that deserve more than a chapter. Each one is self-paced and single-subject: short videos, dozens of progressive exercises, and a recorded solution walkthrough for every single one. Take them in any order, whenever a topic starts costing you sleep.
The mental model that makes JavaScript’s strangest behavior obvious — built through 31 progressive exercises.
Tasks, microtasks, and rendering — see exactly why your async code runs in the order it does.
Share types between client and server and let the compiler catch integration bugs before runtime.
Unit, integration, and contract tests for real APIs — including the awkward parts: databases, time, and flaky networks.
Breakpoints, watch expressions, the Network and Performance panels — stop console.log archaeology forever.
The median page now ships over half a megabyte of JavaScript. Learn to measure, budget, and stay under it.
Lessons run five to twelve minutes and exist only to set up the next exercise. There are no hour-long lectures anywhere in the catalog.
Every concept is drilled through exercises that get harder one notch at a time — the same retrieval-practice structure as the main curriculum.
Every exercise ends with a recorded walkthrough of a reference solution — including the wrong turns, so you learn to recognize them.
Closures are not a trick question — they’re the language’s memory model. This workshop builds the mental picture (environments, not “functions remembering things”) and then stress-tests it until loop-variable bugs, module patterns, and stale-state issues become obvious at a glance.
Further reading: MDN — Closures · You Don’t Know JS Yet: Scope & Closures (Kyle Simpson) · javascript.info — Variable scope, closure
Built around an interactive visualizer: you write a snippet, predict the log order, then watch the task queue, microtask queue, and render steps play out frame by frame. By the end, “why did this run first?” stops being a mystery and starts being a boring, answerable question.
Further reading & viewing: In the Loop (Jake Archibald, JSConf.Asia 2018) · What the heck is the event loop anyway? (Philip Roberts, JSConf EU 2014) · WHATWG HTML — Event loops · MDN — Execution model
You build one product twice: first with hand-written fetch calls and hope, then with shared types and runtime validation at the boundary. The diff between the two — every integration bug the compiler now catches — is the entire argument for TypeScript across the stack.
Further reading: The TypeScript Handbook (Microsoft) · Zod — schema validation docs · OpenAPI Specification
Workshop hours are total watch-plus-build time measured from cohort medians, and exercise counts are current as of this page’s last update. Every workshop is included with enrollment — there is no separate workshop fee.