1. Project Planning & Scoping
Start exactly the way Week 8's classical ML mini-project did, adapted for an LLM application: write down, before any code, what problem this solves, for whom, and what "working" concretely means.
- What task? — answering questions over a specific document set, drafting a specific kind of content, automating a specific multi-step workflow?
- What data does it need? — a document collection for RAG (Week 22), an instruction dataset for fine-tuning (Weeks 19–20), or neither if prompting (Week 21) alone is sufficient?
- Does it need to take actions, or only generate text? This determines whether Week 23's agent/tool-use machinery is actually necessary, or unneeded complexity.
- What does success look like, measurably? — the Week 24 eval criteria you'll hold the finished system to, decided now rather than invented retroactively to match whatever you happened to build.
Scope deliberately small and real rather than large and hypothetical — a well-scoped assistant over 20 documents you actually evaluate carefully is a stronger capstone than an ambitious, untested idea for "an assistant for everything."
2. Architecture Decisions & Tradeoffs
With the problem scoped, choose your adaptation strategy using Week 20's framework — and be ready to explain the choice, not just make it:
- Prompting alone (Week 21) — if the task is well within a general model's existing capability and just needs the right instructions and examples.
- RAG (Week 22) — if the task depends on specific, possibly-changing knowledge the model wasn't pretrained on.
- Fine-tuning or LoRA (Weeks 19–20) — if the task needs a consistent style, format, or specialized behavior that prompting alone can't reliably achieve.
- Agents (Week 23) — if the task genuinely requires taking actions (looking things up, performing calculations, calling external systems), not just producing text.
Most real capstones combine two or three of these — commonly RAG plus careful prompting, sometimes with a thin agent layer for one or two specific actions. Justify each piece you include: "I added RAG because the task depends on my own document set the base model never saw" is a real architectural decision; "I added an agent because agents are interesting" is not.
3. Full Implementation, from Data to Deployment
Build in the order that lets you validate each layer before adding the next — the same incremental discipline from Week 8's pipeline, now spanning the whole stack:
# 1. Get the core generation working with plain prompting (Week 21) -- cheapest to validate
# 2. Add RAG (Week 22) if your task needs grounding in specific data
# 3. Add fine-tuning/LoRA (Weeks 19-20) ONLY if prompting+RAG demonstrably falls short
# 4. Add agent/tool-use (Week 23) ONLY if the task genuinely requires taking actions
# 5. Wrap the whole thing behind a simple API (Week 25)
This order matters: it's far cheaper to discover that prompting alone was sufficient before spending hours setting up fine-tuning infrastructure you didn't actually need, than to build the most complex version first and simplify afterward.
4. Evaluation, Safety & Cost/Latency Pass
Apply Weeks 24 and 25 in full, not as an afterthought:
- Eval suite — the labeled test set and metrics you defined back in Section 1, run against your finished system, with results reported honestly (including failures).
- Hallucination/groundedness check — if your system uses RAG, verify answers are actually grounded in retrieved content (Week 22, Week 24).
- At least one guardrail — something that blocks or catches a known bad output pattern for your domain (Week 24).
- A red-team pass — 30 minutes deliberately trying to break your own system (Week 24) before calling it done.
- Cost/latency numbers — even rough ones, from Week 25's cost model, so you can speak concretely about what this would cost to run for real.
5. Portfolio Write-Up & Demo
A working system nobody can evaluate from the outside is much less useful as a portfolio piece than a modest system explained clearly. Following Week 8's communication template, adapted for this stack:
- The problem and who it's for — one paragraph, from Section 1's scoping.
- Architecture diagram or description — what pieces (RAG, fine-tuning, agent) you used and, crucially, why (Section 2).
- Evaluation results — your eval suite's scores, honestly reported, including anything it revealed that you fixed or chose to accept as a known limitation.
- Cost/latency at realistic volume — from Section 4's pass, showing you thought about it as a real system, not just a demo.
- A short demo — a recording or a live walkthrough of the system actually working on a real example.
6. The Capstone Project
Ship a complete, evaluated, deployed LLM-powered application
Pick a real, well-scoped problem — a document Q&A assistant, a specialized writing tool, a small tool-using agent for a narrow task — and take it fully through Sections 1–5.
Requirements:
- Write your project scope (Section 1) before writing any code: task, data, whether it needs to act, and your success criteria.
- Justify your architecture in writing (Section 2): which of prompting, RAG, fine-tuning/LoRA, and agents you're using, and why each included piece is actually necessary.
- Implement incrementally (Section 3), validating each layer before adding the next.
- Run a full evaluation, safety and cost/latency pass (Section 4), reporting real numbers — including anything that didn't work as well as you'd hoped.
- Deploy it behind a simple API (Week 25) and produce a portfolio write-up and short demo (Section 5).
Not size or cleverness — a small, well-scoped system with honest evaluation results and a clear explanation of tradeoffs reads as far more credible to anyone reviewing it (an employer, a collaborator, future-you) than an ambitious system with no evidence it actually works.
7. Final Checklist
Before calling the capstone — and the course — done, confirm each of these honestly:
✓
Is the problem scope written down, with concrete success criteria decided before you built the system?
Is the problem scope written down, with concrete success criteria decided before you built the system?
If success criteria were defined after seeing what the system does, they're no longer a fair test of it — exactly the discipline behind holding out a test set in Week 5, applied here to the whole project.
✓
Can you explain, for every architectural piece you included (RAG, fine-tuning, agents), why it was necessary rather than just interesting?
Can you explain, for every architectural piece you included (RAG, fine-tuning, agents), why it was necessary rather than just interesting?
Every added piece of architecture is added cost, complexity and failure surface. A capstone that can justify each component crisply reads as far more mature engineering judgment than one that used every technique from the course regardless of whether the task needed it.
✓
Does your write-up report real eval numbers, including anything that didn't work?
Does your write-up report real eval numbers, including anything that didn't work?
An honest account of limitations is more credible, not less, than a write-up implying perfection — precisely Week 24's principle that a model card listing no limitations is more suspicious than one that lists several.
✓
Could someone else — a hiring manager, a collaborator — understand what this does and how well it works, without reading your code?
Could someone else — a hiring manager, a collaborator — understand what this does and how well it works, without reading your code?
A working system is only as valuable as your ability to communicate what it does and why it matters — the write-up and demo from Section 5 are not optional polish, they're the actual deliverable a reader will judge the whole project by.
That's the full 26-week path — from a first NumPy array to a deployed, evaluated LLM-powered application. Congratulations on reaching the capstone.