Seven hands-on modules. You don't just read about LLM apps โ you build four small ones, one idea at a time, then assemble your own.
Built alongside Building with LLMs (the KSEPT summer program) โ a CS course taught by Larry Arnstein (CTO @ Clause; ex-Apple; former UW faculty). I took it live and rebuilt the lecture material into this site as the lectures happened: learning the subject and authoring the textbook at the same time, the kind of thing the AI era makes possible for one person. Each module pairs a short concept note with a starter you run yourself. By the end you can take an LLM from "a chat box" to "an app that searches your documents and acts on a database."
Every project page has a Run it live button. A static page can't start a server โ so it asks a small launcher to wake a Kubernetes pod on demand, then embeds the running app right here in the page. Idle apps shut back down automatically.
Above: the data-analyst agent booting on demand and answering a real query โ no install. How it works โ
I turned my own coursework into a product โ learning the subject and authoring the textbook at the same time: a teaching site I'd actually want to learn from, plus the infrastructure to let anyone run the examples. These are the decisions I thought hardest about.
Korean, analogy-first prose for intuition; English diagrams for precision; an instantly-graded quiz at the end of every section. 96 diagrams across the site, each built to make one idea click โ and colored by shape, not by hand, so the whole thing stays visually consistent.
The RAG contest entry was tuned by a 45-config overnight grid search against a blind holdout โ coverage, MRR, and token cost per config โ then the champion picked by a rule: within noise, take the cheaper one. It was graded 9/10, top of the class. The walkthrough โ
Motion carries information, never decoration: a green ball tours a flow's common path and turns yellow on a special-case branch; a frozen node sits still while a trained one breathes. Nothing auto-plays a walkthrough โ you set the pace.
A ~120-line launcher scales a Kubernetes deployment 0โ1 when you click, embeds the app in the page, and scales it back to zero when idle โ ephemeral and self-hosted, like a throwaway preview deploy. The write-up โ
Every starter ships with intentional bugs. I reproduce the failure, explain the mechanism, fix it, and read the diff before accepting โ one commit per fix, so the change log is a walkable learning journal.
Add one skill per module; each ships a small app that proves you got it. Go in order โ every page builds on the one before, and each project adds one capability on top of the last.
Each section is tagged with its original slide number (a chip like ) so you can match a note to the lecture deck, and most pages end with a quick quiz.
Learn: VSCode ยท Git ยท Node.js ยท Python 3.11 ยท Claude Code CLI ยท an API key.
Build: a working dev environment with one shared .env every example reuses.
Learn: two servers + a proxy, JSX, mount, and why the API is stateless.
Build: in two parts โ
Learn: 4 levels โ parseable text โ JSON schema โ tool use โ MCP.
Build: a job-post extractor that returns validated, structured fields.
Learn: embeddings, chunking, vector search (ANN/HNSW), citations, memory.
Build: a RAG app over ~1,297 pages of US aviation law (14 CFR) with ยง-cited answers โ the course's contest entry, graded 9/10, top of the class.
Learn: the ~20-line agent loop, subagents, memory scopes, computer use, safety.
Build: a data-analyst agent over a read-only SQL database.
Learn: the eval ladder, prompt-injection defense, observability & latency.
Build: guardrails, evals, and telemetry around the app you already made.
Learn: nothing new โ it's all assembly now.
Build: extend one of your projects, or start something fresh. Small but shippable.