PDFs are everywhere, but the file format itself feels like a black box. What better way to demystify it than to write a PDF writer from scratch?
Here's the twist: we'll use iterators all the way down—streaming every byte without ever assembling the full document in memory. At first, this seems like a natural fit. But PDFs fight back: forward references, cross-reference tables, and content lengths that need to be known before the content exists. Each of these challenges forces us to discover a new way to keep things lazy.
This talk walks through the problem-solving journey step by step. You'll pick up practical iterator techniques—composing generators, managing dependencies in lazy pipelines, and knowing when "too far" is actually just far enough—all while building something real. You'll also walk away with a surprising appreciation for what's inside every PDF you've ever opened.