Course progression
The course is structured to build knowledge progressively, starting from hardware fundamentals and ending with production-ready systems.Hardware fundamentals (Week 0.5)
Network layer (Week 1)
Browser engine (Weeks 2-3)
JavaScript engine (Weeks 4-5)
Virtual DOM (Week 6)
React internals (Week 7)
Performance engineering (Week 8)
Engine modification (Week 9)
Hardware constraints (Week 10)
Capstone project (Weeks 11-12)
Week-by-week breakdown
Week 0.5: CPU & memory architecture
Hardware fundamentals
- CPU basics: fetch, decode, execute, writeback
- Registers & instructions
- Branching & pipelines with prediction
- Cache hierarchy (L1/L2/L3)
- Stack vs heap memory
Low-level execution
- System calls overview
- Memory layout: text, data, stack, heap
- Pointers and memory alignment
- Virtual memory basics
Week 1: Networking from scratch
Core protocols
Core protocols
- Socket programming: TCP & UDP sockets
- TCP basics: Three-way handshake, flow control
- HTTP basics: Parsing headers, chunked encoding, keep-alive
- TLS basics: Handshake overview, certificate verification
- WebSocket basics: Upgrade handshake, frame handling
Network debugging
Network debugging
- tcpdump / Wireshark fundamentals
- Simulate network latency and packet loss
Weeks 2-3: Browser engine implementation
HTML parsing
- Tokenization state machine (13 states, 67 transitions)
- Tree construction algorithm
- Error recovery and quirks mode
- Parser-blocking scripts and async/defer
CSS engine
- Tokenizer and parser
- Selector matching with specificity
- Cascade resolution algorithm
- Style computation and inheritance
- Media query evaluation
Layout engine
- Box model calculation
- Normal flow, floats, positioning
- Flexbox algorithm implementation
- Grid algorithm implementation
- Line breaking and text shaping
Paint and composite
- Layer tree construction
- Paint recording and display lists
- Rasterization strategies
- GPU compositing and textures
Weeks 4-5: JavaScript engine
- Parsing & AST
- Interpreter
- Memory management
- Event loop
- JIT (Optional)
- Lexical analysis and tokenization
- Recursive descent parser
- AST construction and validation
- Scope analysis and symbol resolution
Week 6: Virtual DOM & reconciliation
Diffing algorithms
Diffing algorithms
- Tree diffing complexity analysis (O(n³) → O(n))
- Key-based reconciliation
- Heuristics: component type, element type, lists
- Fiber architecture preparation
Batching and scheduling
Batching and scheduling
- Requestanimationframe-based updates
- Double buffering for UI consistency
- Priority queues for updates
- Time slicing for interruptibility
Repaint/reflow optimization
Repaint/reflow optimization
- Layout thrashing detection
- Read/write batching (FastDOM pattern)
- CSS containment and layer creation
- Composite-only animations
Week 7: React/Next.js internals
Fiber reconciler
- Work loop and unit of work
- Reconciliation phases: render and commit
- Effect list construction
- Priority levels and lane model
Hooks implementation
- Hooks queue and cursor
- useEffect cleanup and dependency checking
- useRef mutable container
- useCallback/useMemo memoization
- Custom hook composition
Concurrent features
- Time slicing and work interruption
- Suspense and lazy loading
- useTransition and useDeferredValue
- Automatic batching
Server-side rendering
- renderToString vs renderToPipeableStream
- Progressive hydration and selective hydration
- Double pass problem and solutions
- Edge rendering vs Node rendering
Next.js architecture
Next.js architecture
- File-based routing implementation
- SSG: getStaticProps build-time execution
- ISR: revalidation and stale-while-revalidate
- API routes and middleware
- Module bundling and code splitting
Week 8: Performance engineering
Profiling tools
- Chrome DevTools Performance tab
- React DevTools Profiler
- Lighthouse metrics: FCP, LCP, TTI, CLS, FID
- Custom performance marks
- Heap snapshots and allocation timelines
Optimization techniques
- Component memoization strategies
- Virtualized lists and windowing
- Image optimization: formats, lazy loading
- Font optimization: subsetting, preloading
- Bundle analysis and tree shaking
- Code splitting strategies
Critical rendering path
- Eliminate render-blocking resources
- Minimize critical CSS
- Defer non-critical JavaScript
- Preload/prefetch/preconnect strategies
Week 9: Engine modification & debugging
- JavaScript engine hacking
- Browser engine debugging
- WebAssembly integration
- Build V8 from source with custom patches
- Add custom bytecode instructions
- Instrument GC for detailed metrics
- Profile JIT compilation decisions
Week 10: Hardware simulation & constraints
Embedded systems
- Run minimal browser on microcontroller simulation
- Memory-constrained rendering (64KB RAM)
- CPU-constrained JavaScript (10MHz)
- Display optimization for small screens
Stress testing
- Memory pressure simulation
- CPU throttling
- Network constraint testing (2G, 3G)
- GPU bottleneck analysis
Weeks 11-12: Capstone project
Custom browser engine
React-like framework
SSR framework
Production application
Performance suite
WebAssembly acceleration
Hardware testing