The complete course
Assessment contract
Comprehensive final, ~3-4 hours, four parts, fully offline and auto-graded. Part 1 — Live Lab (35%): from a blank page, build a loopback call with mock media passing ~60 continuous assertions: perfect negotiation under adversarially injected glare, codec preference via setCodecPreferences or munging, 3-layer simulcast with a layer kill/restore (the harness-provided simulcast answer-munging shim from m7-l3 is available in the Live Lab), E2EE encoded transform with one key rotation, a 1 MB data-channel transfer under monitored backpressure bounds, and a debounced watchdog surviving an injected transport kill (implemented as a far-peer close — consent expiry drives 'disconnected'; assertions are state-based with browser-calibrated windows). Part 2 — Forensics Gauntlet (25%): five unseen incident bundles, each combining ≥2 artifact types (SDP, ICE logs, stats timelines, webrtc-internals dumps), structured diagnosis with decisive-evidence citation; includes one 'everything is actually fine' trap. Part 3 — Protocol Bench (25%): timed parsing and logic — STUN binary decode variant, RTP header with two-byte extensions, SDP query battery on a monster SFU offer, ICE pair-priority ordering, SVC drop-set on a fresh dependency graph, jitter-buffer run scored on the dual metric. Part 4 — Architecture & Judgment (15%): structured design problems (topology, codec, transport, TURN 443/TLS deployment, cascade routing) with numeric fields graded exactly, including one 'don't use WebRTC' trap case. Certificate ('Production WebRTC Engineer', self-contained printable page) requires ≥85% overall plus all eight module badges.
The examination rewards working code and discriminating evidence. Each assertion gives local feedback; the scorecard combines the code problems with the concept review. Reference answers remain available after a serious attempt.
Repair under deadline. Choose repair from RTT, decode reserve, and playout budget.
Lab 1
Repair under deadline
Graded in the browser against 3 assertions; the editor and harness require JavaScript.
Recognize congestion before loss. Read the delay trend rather than waiting for a queue to overflow.
Lab 2
Recognize congestion before loss
Graded in the browser against 3 assertions; the editor and harness require JavaScript.
Budget the conference topology. Compute the client cost of mesh, SFU, and MCU architectures.
Lab 3
Budget the conference topology
Graded in the browser against 3 assertions; the editor and harness require JavaScript.
Stabilize an SFU layer decision. Apply asymmetric hysteresis to a changing receiver budget.
Lab 4
Stabilize an SFU layer decision
Graded in the browser against 3 assertions; the editor and harness require JavaScript.
Explain the live path from stats. Join the object graph into codec, candidate path, and RTT evidence.
Lab 5
Explain the live path from stats
Graded in the browser against 1 assertion; the editor and harness require JavaScript.
Make the final transport judgment. Select WebRTC, broadcast delivery, an unbundled stack, or ordinary HTTP from product constraints.
Lab 6
Make the final transport judgment
Graded in the browser against 3 assertions; the editor and harness require JavaScript.
Check your understanding
Auto-graded check
8 auto-graded questions with an explanation for every wrong answer. Requires JavaScript. (final-quiz)
Examination score
The scorecard totals this page’s graded work as you go. It requires JavaScript.
WebRTC: From First Principles · Comprehensive Final Examination