js-engine
JavaScript Engine internals
How V8 runs your code — parsing, bytecode, hidden classes, the JIT, garbage collection, and how to stay fast.
Start track →Start from zero
What a JS engine is, and why internals decide your app's speed.How JS runs
Source becomes AST, then bytecode the interpreter runs — before any JIT.Values & memory
How the engine packs numbers, pointers and objects into machine words.Hidden classes & ICs
Objects with the same shape share a hidden class — that's what makes property access fast.The JIT
The engine speculates on types, compiles hot code, and deopts when wrong.Closures & scope
Closures capture scope into heap-allocated contexts — with a real cost.Garbage collection
Generational GC bets most objects die young — invisible until it isn't.Async, deeply
The event loop, microtasks and promise internals that decide execution order.Measuring & optimizing
Use engine traces to keep code monomorphic and JIT-friendly.Putting it together
Profile and optimize a real hot path with engine knowledge.Build with this track
Guided projects that exercise what you learn here.
Hot-Path Profiler Lab
Take a deliberately slow piece of JavaScript and turn it into a controlled experiment. You'll build a micro-benchmark harness you actually trust, profile the hot path until you can name what the engine is doing, and apply engine-aware fixes — monomorphism, killing megamorphic call sites, cutting allocations — proving each win with numbers instead of vibes. This is the whole discipline of performance work in miniature: measure, form a hypothesis about the engine, change one thing, measure again.
Regex engine
Build a regular expression engine from scratch using Thompson NFA construction and subset simulation — the same technique that makes grep and re2 immune to catastrophic backtracking.
TypeScript type system, deep
From structural typing to type-level programming — generics, conditional and mapped types, and typing real systems.