Capstone¶
Capstone · prereq Containers, Kubernetes & Helm, AWS, Terraform, CI/CD, Secret Management, Observability — as relevant to the chosen project; (stretch) GitOps. · ~2–4 days
Every module up to now ends in a contained exercise and a self-check gate. The capstone changes the unit of work: one real, end-to-end project, built with everything learned so far and shipped through a real git flow, then defended decision-by-decision in an extended gate. There's no toy version of this and no partial credit — it's the synthesis exercise the whole path has been building toward.
TL;DR — in 30 seconds:
- One end-to-end project — pick from the menu below, or bring your own — shipped through a real git flow (branch → small commits → PR), not a toy exercise. No partial credit.
- You run the shape of every prior beat yourself, over that one project: Scope (restate + plan) → Ship (branch → small commits → PR) → Defend (extended self- or peer-run gate) → Portfolio.
- The extended gate adds a fifth question beyond the standard four: Operate — "it's broken at 2am, walk me through your first five minutes." Provenance is graded too: blind-trusting any agent-generated chunk you can't explain how you verified is an automatic fail.
Learning objectives¶
By the end, the junior can:
- Scope a real end-to-end project into a defensible plan — restating the problem and approach before writing code.
- Ship it through a real git flow: branch → small commits → a merged PR, drawing on the tools from modules 03–21 as the project needs.
- Defend every decision in the extended gate — walkthrough, alternative, failure/debug, provenance, and the "operate it at 2am" question.
- Assemble a portfolio artifact (the merged change + its gate log) they can walk any interviewer through.
Format note. The capstone is integrative, so it does not repeat the five per-topic beat headings — it runs all five over one project:
- Scope = Learn + Pair (restate the project and plan)
- Ship = Do (the merged PR)
- Defend = Prove (the extended gate below)
- Portfolio + deck mastery = Retain
Its gate is a superset of the standard four — a documented exception, per the Socratic gate.
flowchart LR
A(["Pick a project<br/>(menu or your own)"]) --> B["Scope (Learn + Pair)<br/>restate project + plan"]
B --> C["Ship (Do)<br/>branch → commits → PR"]
C --> D["Defend (Prove)<br/>extended gate"]
D --> E["Portfolio (Retain)<br/>assemble portfolio.md"]
E --> F(["Capstone complete"])
Pair, Do and Prove run in Claude Code, with the onboarding-tutor skill. Click a button to copy the exact prompt, then paste it into Claude Code in this repo.
What makes a good capstone project¶
Whether you pick from the menu below or bring your own, it should:
- Touch ≥ 3 modules' worth of skills end to end — at minimum a container, a deploy target, and a pipeline; more of the roadmap is better.
- Have a clear, checkable done (acceptance criteria written up front).
- Be completable in a few days, not weeks.
- Be safe to run and safe to show — no real production traffic or secrets, a sample app is fine.
Menu of project options¶
Pick one, adapt it, or propose your own of similar scope:
- Containerize + deploy. Take any small sample app, write a rootless
Containerfile, and deploy it to a dev Kubernetes cluster with a Helm chart. - Pipeline it. Add a CI/CD pipeline (GitHub Actions) that builds, tests, and pushes an image on merge, with secrets pulled from a real secret store rather than hardcoded.
- Provision it. Write the Terraform to stand up whatever infrastructure the app needs (a cluster namespace, a database, networking) instead of clicking it together by hand.
- Observe it. Add metrics and logs for the running app, and build one Grafana dashboard that would actually help you at 2am.
- Full lifecycle (recommended). Combine the above into one project: containerize → version control + CI/CD pipeline → provision with Terraform → deploy to Kubernetes with Helm → wire up secrets → observability (metrics/logs + a dashboard) → (stretch) GitOps for the deploy step instead of a push-based pipeline.
The run¶
- Scope — restate the project, acceptance criteria, and a plan before writing code.
Done when: you have a written restatement of the project, acceptance criteria, and a plan — sanity-checked with the
onboarding-tutoror a peer. - Ship — do the work through a real git flow (branch → small commits → PR), pairing with the tutor and delegating parts to agents but verifying everything. Done when: the project is merged as a PR through that git flow.
- Defend — the extended gate (below).
Common gotchas
- Starting to code before writing down the plan. Fix: Scope isn't optional overhead — restate the project, acceptance criteria, and plan, and get a sanity-check first. Coding ahead of that is the fastest way to build the wrong thing.
- Letting an agent write a chunk you can't explain. Fix: for every agent-generated piece, know what it was and how you verified it (tests run, output inspected, docs cross-checked) before Defend — "it looked right" is a blind-trust fail, not a pass.
- Skipping the real git flow for speed. Fix: the done-condition for Ship is a merged PR reached through branch → small commits → PR, same as any other change — not a direct push or a single giant commit.
- Having no named alternative for a design choice. Fix: the Alternatives gate question expects at least two real decisions, each justified against a specific alternative you considered and rejected — pick those while you work, not while being asked.
- Assembling
portfolio.mdonly after the gate. Fix: collect the PR link, acceptance-criteria mapping, and your provenance story as you go — reconstructing them from memory afterward is where detail gets lost.
The extended gate (superset of the standard four)¶
Run as a self- or peer-review (the onboarding-tutor skill in adversarial mode, or a peer standing
in for it), covering the whole change:
- Walkthrough — every meaningful file/resource in the PR, explained.
- Alternatives — at least two design choices, justified against a named alternative each.
- Failure & debug — how it fails in production and how you'd diagnose it.
- Provenance — for every agent-generated chunk: what it was, and how you verified it (tests run, output inspected, docs cross-checked). Blind-trust anywhere = fail.
- Operate — "It's deployed and broken at 2am. Walk me through your first five minutes."
Done when: all five gate questions above have been run and recorded as a pass.
Pass = capstone complete¶
On pass, record it in the gate log and note which earlier modules proved weak — those are the highest-priority improvements for your own review (the Area's self-improvement loop).
Worked example (illustrative — the menu's "full lifecycle" option, filled in)¶
Project: "Containerize a small internal service and make it deployable to a dev cluster, with a pipeline and a dashboard." Spans: Containers (a non-root
Containerfile) + Kubernetes/Helm (a minimal chart) + CI/CD (build/push on merge) + Observability (one Grafana dashboard) — 4 modules' skills, dev-only so blast radius is near zero. Acceptance (written up front): image builds rootless;helm installbrings the service up in dev; a bad value is caught athelm templatereview; the pipeline builds and pushes on merge; a dashboard shows at least one useful signal; a rollback is demonstrated. The run: scope it → ship it through a real git flow (branch → small commits → PR) with the tutor → defend it in the extended gate → assemble your portfolio (below).
Your portfolio (what a completed capstone produces)¶
On passing the capstone you leave with evidence you can show any employer — assemble it as
portfolio.md:
- The capstone PR (link) + its written acceptance criteria and how each was met.
- The gate-log across every module — each module's "defended / checked by / weak spots" line: proof you can explain your work, not just run it (this is the interview-ready evidence).
- Deck mastery — the
SE Onboardingdeck themes you can recall unprompted (see module 13, Interview & Placement). - One AI-native provenance story — a concrete case where an agent drafted something, you verified it, and you can say exactly how you verified it.
A clean capstone gate + this portfolio = a repo and a story you can walk any interviewer through.
Done when: portfolio.md exists with all four pieces above.
Key takeaways¶
- The capstone doesn't repeat the five-beat headings — it runs them over one real project: Scope = Learn + Pair, Ship = Do, Defend = Prove, Portfolio = Retain.
- A good project touches ≥ 3 modules' worth of skills and has acceptance criteria written up front — not discovered along the way. The menu above gives a ready-made default; bringing your own is fine too.
- Scope is sanity-checked before any code is written — restating the project, criteria, and plan first is what makes the rest defensible, not overhead to skip.
- Ship means a merged PR through a real git flow (branch → small commits → PR) — pairing with the tutor and delegating to agents is fine, but everything gets verified.
- The extended gate is a superset run as self- or peer-review: the standard four (walkthrough, alternatives, failure & debug, provenance) plus Operate — "broken at 2am, walk me through your first five minutes." Provenance is graded on its own: unable to say how you verified an agent-generated chunk = fail.
- The portfolio (
portfolio.md) is the interview-ready evidence: the PR + acceptance mapping, the gate-log across every module, deck mastery, and one concrete AI-native provenance story.
Check yourself — how is the capstone's extended gate different from the standard four-question gate every earlier module uses?
It's a superset run as self- or peer-review: it keeps the standard four (walkthrough, alternative, failure & debug, provenance) and adds a fifth — Operate — "it's deployed and broken at 2am, walk me through your first five minutes."
Check yourself — you used an agent to write most of a Terraform module for your capstone project. What must you be able to say about it at Defend?
Not just that it works — provenance: which parts the agent wrote, and specifically how you verified each one (tests run, output inspected, docs cross-checked). Being unable to say how you verified an agent-generated chunk is a fail, regardless of whether the code itself is correct.
Check yourself — why does a good capstone project need to be low-blast-radius rather than mission-critical?
It's likely your first time shipping something real end-to-end alone. Keeping it dev-only or in a contained area means a scoping or execution mistake costs little while the skill — scoping, shipping, defending — is still being proven for the first time.
Go deeper — curated resources¶
Hand-picked external material to take this topic further — the best books, courses, talks, and writing. Cost is tagged Free, Free online (full text/course free on the web), or Paid.
- Book · The Pragmatic Programmer (20th Anniversary Edition) — Hunt & Thomas. The timeless craft of shipping software well. Paid.
- Book · A Philosophy of Software Design — John Ousterhout. Keeping complexity down as you build. Paid.
- Docs · Google Engineering Practices — Code Review — Google. What "good" looks like in review, useful for your PR. Free.