Week 1

Stage 14 · Weeks 97–104 · capstone

Capstone + Job Readiness

Produce professional evidence

Locked

Scored stage progress

0%

Practice and implementation

0/41

Exercises + milestone requirements owned by this stage

Evidence and gate

0 · 0/20

Artifacts · checked requirements

Why it matters

Purpose of this stage

Produce professional evidence

Subjects

1 subjects · 14 canonical topics

Each subject states what you should be able to do, an order to work through it in, what to watch for, and the questions a reviewer should be able to ask you at the end. None of it is tracked or scored.

How to work through this subject

An order that works, not a checklist. Nothing here is tracked — the steps sequence this subject’s own topics and add none.

  1. State the problem and the decision the system supports, before naming a single component.
  2. Design the Python service and its API, with authentication and authorization decided up front.
  3. Model the data in PostgreSQL and write down where workflow state lives.
  4. Add the conventional ML component and justify it against a rules-based alternative.
  5. Add an LLM component only where you can show evidence it helps, and record that evidence.
  6. Build the evaluation datasets before optimising anything.
  7. Add the human review point and the audit log around every consequential action.
  8. Package it with Docker, put it behind CI, and add the observability you would need at 3 AM.
  9. Write the threat model, then attack the system yourself and record what survived.
  10. Finish by rehearsing the eleven final-gate questions, pointing at a real artifact for each answer.

What to watch for

  • Every component here was learned in an earlier stage. If one feels unfamiliar, the gap is in that stage, not this one.
  • Use an LLM component only where it is justified. 'We used AI' is not an architecture decision.
  • Workflow state is the part people leave in memory and lose on the first restart. Decide where it lives on day one.
  • Human review is part of the architecture, not a disclaimer. Say which actions require it and why.
  • The threat model is written before the attacks, so the attacks can prove or disprove it.
  • This stage is defended, not delivered. An artifact you cannot explain does not count.

Curriculum topics

Python service
The application itself, structured and tested as engineering work rather than as a script.
PostgreSQL
The relational store holding workflow and domain state.
API
The interface through which the system is used and integrated.
authentication/authorization concept
Who may use the system, and what each of them may do.
conventional ML component
A classical model where one is the right tool — often cheaper, faster and more explainable than an LLM.
LLM/AI component only where useful
An LLM included only where evidence shows it beats the alternative. 'We used AI' is not a design decision.
evaluation datasets
The held-out sets that make every quality claim about this system checkable.
workflow state
Where a multi-step task's progress lives, and what happens to it if the process dies.
human review
The point at which a person inspects or approves, and what they are shown.
audit logs
The record of every consequential action the system took, required for review and incident response.
Docker
Packaging an application with its dependencies into an image that runs the same everywhere.
CI
Automated checks on every change: tests, data checks, model checks, build.
observability
Logs, metrics and traces sufficient to answer what the system is doing right now.
threat model
The written analysis of assets, trust boundaries, attacker goals and mitigations, plus the risk left over.

Resources for this subject

  • REFERENCEHidden Technical Debt in Machine Learning Systems Sculley et al., Google
    The paper showing that model code is a small fraction of a real ML system. Directly informs the capstone's architecture and trade-off documentation.
    Open
Need another explanation?3 more references
  • REFERENCEapplied-ml Eugene Yan
    Curated industry write-ups of real deployed systems. Use them as reference architectures when justifying your capstone's design.
    Open Open
  • OPTIONALWriting on applied ML systems Eugene Yan
    Essays on design and evaluation decisions, useful for building the interview narrative the stage requires.
    Open
  • OPTIONALMachine Learning Systems Harvard (mlsysbook.ai)
    Free textbook on end-to-end ML systems engineering. Useful for the architecture-document and system-design portions of the final gate.
    Open

A reviewer should be able to answer these

Answer from memory, out loud, before moving on. These are not tracked and do not affect the gate — they tell you whether you actually understand this subject.

  1. Why is there an ML component, and what would break if you replaced it with rules?
  2. Why is there an LLM component, and what evidence shows it helps?
  3. Where does workflow state live, and what happens if the process dies mid-task?
  4. What does a human reviewer see, and at which point in the flow?
  5. What does one successful task cost, end to end?
  6. What happens when the model provider is unavailable?
  7. What does your threat model claim, and which of its claims did your own attacks test?
  8. Which single component would you remove if you had to ship a week early, and what would that cost?

Exercises

Demonstrated practice · 35% base weight

Python coding

core ~45 min

Solve a small problem live, from a blank file, while narrating your reasoning.

What to implement

  • Work from an empty file with no AI assistance.
  • Talk through the approach before writing code.
  • Handle edge cases without being prompted.
  • Write at least one test afterwards.
  • State your assumptions and the complexity of your approach before coding.

Done when

  • You produced working code within a fixed time box.
  • You identified edge cases before being asked about them.
  • You narrated the approach before typing, not afterwards.
  • You can state the complexity of what you wrote without rereading it.

One hint, available after you have made a real attempt.

SQL

core ~45 min

Write joins and aggregates against an unfamiliar schema under time pressure.

What to implement

  • Read a schema you did not design.
  • Write a query joining at least three tables.
  • Include an aggregate with grouping and filtering.
  • Explain why your join type is correct.
  • Say what row count you expect before you run the query.

Done when

  • The query runs correctly first or second attempt.
  • You can explain how the row count changes with a different join type.
  • Your predicted row count matched, or you can explain why it did not.
  • You can rewrite the query with a different join and predict the change.

One hint, available after you have made a real attempt.

ML fundamentals

core ~45 min

Answer fundamentals questions from memory, without hedging.

What to implement

  • Explain bias/variance without reciting a definition.
  • Explain leakage with a concrete example from your own project.
  • Explain why a baseline matters.
  • Explain regularisation in terms of what it prevents.
  • Explain overfitting and underfitting from curves you actually produced.

Done when

  • Every answer uses an example from work you actually did.
  • No answer requires looking anything up.
  • You answered each question inside two minutes without hedging.
  • Every claim you made is backed by a number you can find in your own repository.

One hint, available after you have made a real attempt.

metrics

stretch ~45 min

Defend a metric choice against a plausible-sounding alternative.

What to implement

  • State the metric you chose and why.
  • Explain what it fails to capture.
  • Explain the threshold decision.
  • Reject a higher-scoring but wrong metric with reasoning.
  • Explain what your metric does at the extremes of class balance.

Done when

  • You can argue the case where your metric is the wrong choice.
  • You can connect the metric to the cost of each error type.
  • You can name a higher-scoring metric and say precisely why you rejected it.
  • You can state the threshold you chose and who the decision affects.

One hint, available after you have made a real attempt.

ML system design

stretch ~60 min

Design an ML system end to end on a whiteboard, including what you would not build.

What to implement

  • Start from the problem and the baseline, not the model.
  • Cover data, training, serving, monitoring and rollback.
  • State the trade-offs you are accepting.
  • Identify what you would deliberately leave out of v1.
  • Say how you would evaluate the system before it ships and after.

Done when

  • You reached serving and monitoring, not just training.
  • You named at least one thing you would not build and why.
  • You covered failure and rollback without being prompted.
  • You stated at least one trade-off you accepted and its cost.

One hint, available after you have made a real attempt.

LLM/RAG evaluation

stretch ~45 min

Explain how you evaluated an AI system, component by component, with evidence.

What to implement

  • Describe how the eval dataset was built.
  • Separate retrieval evaluation from generation evaluation.
  • Give numbers, including a result that disappointed you.
  • Explain what you would measure next.
  • Explain how you told a retrieval failure apart from a generation failure.

Done when

  • You can cite an actual number from your own eval run.
  • You can name a change that made things worse.
  • You can localise a failure to a component using your own logs.
  • You reported latency and cost alongside quality, unprompted.

One hint, available after you have made a real attempt.

API design

core ~45 min

Design an API for a described feature, including errors and versioning.

What to implement

  • Define resources, methods and status codes.
  • Specify request and response shapes.
  • Handle validation failure and partial failure.
  • Say how you would change it without breaking callers.
  • State how a client should behave on retry, and what makes that safe.

Done when

  • Error responses are specified, not an afterthought.
  • You can describe a backwards-compatible change and a breaking one.
  • You designed the error responses before the happy path.
  • You can name one change that is safe for existing callers and one that is not.

One hint, available after you have made a real attempt.

production debugging

stretch ~45 min

Work through a production incident from symptom to root cause, out loud.

What to implement

  • Start from a symptom, not a cause.
  • State what you would look at first and why.
  • Form a hypothesis and say how you would falsify it.
  • Describe mitigation separately from the fix.
  • Say what you would check to rule out the most recent deployment.

Done when

  • You separated stopping the bleeding from fixing the cause.
  • Your first action was gathering evidence, not changing code.
  • You named the evidence you would gather before touching anything.
  • You proposed a mitigation that does not depend on knowing the root cause.

One hint, available after you have made a real attempt.

architecture walkthrough

stretch ~90 min

Walk a reviewer through your capstone and defend every decision.

What to implement

  • Explain the problem before the architecture.
  • Justify each component, including why AI was used at all.
  • Cover security, cost and failure modes unprompted.
  • Answer all eleven final-gate questions with artifacts.
  • Name the component you would remove first under time pressure, and its cost.

Done when

  • You answered every final-gate question without notes.
  • Each answer pointed at a real artifact in the repository.
  • You defended the LLM component with evidence rather than with its presence.
  • You named the system's weakest point before the reviewer did.

One hint, available after you have made a real attempt.

Stage project

Only milestones owned by Stage 14 count here

P10 · Stage project

Vertical Capstone

Project detail

Combine the stack into one serious product.

P10.M1 · Vertical AI/ML system

Resources

0% progress weight

Resource status is a convenience marker only. It cannot change competencies, gates, or stage completion — in any tier below.

Start here — no canonical resource for this stage

2 available

The curriculum names no resource for this stage. These are authored suggestions, not part of the canonical library.

  • REFERENCEHidden Technical Debt in Machine Learning Systems Sculley et al., GoogleThe paper showing that model code is a small fraction of a real ML system. Directly informs the capstone's architecture and trade-off documentation.Stage 14 has no primary resource in the canonical library — by design, since it is a synthesis stage.Open
  • REFERENCEapplied-ml Eugene YanCurated industry write-ups of real deployed systems. Use them as reference architectures when justifying your capstone's design.Open Open
Need another explanation?2 supplementary resources · not part of the canonical library

Use these for a demonstrated gap, not as a parallel course. They are authored additions and can never be the primary resource for a subject.

  • OPTIONALWriting on applied ML systems Eugene YanEssays on design and evaluation decisions, useful for building the interview narrative the stage requires.Open
  • OPTIONALMachine Learning Systems Harvard (mlsysbook.ai)Free textbook on end-to-end ML systems engineering. Useful for the architecture-document and system-design portions of the final gate.Open

Stage gate

Readiness assessment

Not ready

Stage-specific requirements

Answer each prompt without notes. Expand a question only when you are ready to check your answer.
0/12
  • Answer: Why this model?
    Answer

    Name the baseline, the alternatives you tried, and the number that decided between them on the metric you chose. Say what this model does that the simpler option could not, and what it costs in latency, cost and interpretability. Point at the experiment in the repository.

  • Answer: Why this metric?
    Answer

    State the decision the system supports and the cost of each error type, then show that the metric reflects them. Say what it fails to capture, how the threshold was chosen and who it affects, and name a higher-scoring metric you rejected and why.

  • Answer: Why not rules?
    Answer

    Show the rules-based baseline you actually implemented and the score it reached. Say where it failed, why it could not be extended to cover those cases, and what the model captures that enumerated rules could not. If the rules were close, say so and justify the extra machinery honestly.

  • Answer: Why not simpler retrieval?
    Answer

    Show the lexical baseline and its retrieval metrics, then the same metrics for what you shipped. Say what chunking, hybrid search or reranking changed, at what latency and cost, and name the queries where the simpler approach was as good. Complexity that cannot show a gain is complexity you should remove.

  • Answer: Where can leakage occur?
    Answer

    Walk the data path and name each point where information could reach the model that would not exist at prediction time: features derived after the outcome, preprocessing fitted before splitting, a random split over grouped or time-ordered rows, and evaluation cases that overlap training data. Say how you checked each one and what you found.

  • Answer: What happens under distribution shift?
    Answer

    Say which inputs would plausibly change, how you would detect that, and what the model would do while it is happening. Cover the lag before true outcomes arrive, the monitoring that would notice before a user complains, the threshold that triggers retraining, and the fallback while the system is degraded.

  • Answer: How is this evaluated?
    Answer

    Describe the evaluation set, how it was built and when, and how it is kept representative as it grows from real failures. Report the components separately, including retrieval, generation, tool selection and task completion, alongside latency and cost. Give real numbers, including a result that disappointed you.

  • Answer: What can an attacker do?
    Answer

    Present the threat model and then what you actually demonstrated: injection directly and through retrieved content, disclosure of data the system holds, misuse of tools, and any action the system can take unattended. Give the mitigation for each, the retest result, and the residual risk with its owner.

  • Answer: What happens if the model provider is down?
    Answer

    Say what happens right now: whether calls fail fast or hang, what the timeout is, what the user sees, and whether any partial work is left inconsistent. Then describe the fallback, whether a queued or degraded mode exists, and how state is recovered when the provider returns.

  • Answer: How do you roll back?
    Answer

    Describe the procedure end to end: what identifies the previous good version, who or what triggers the rollback, how long it takes, and how you confirm it worked. Include what happens to in-flight tasks and to data written by the version being rolled back, and say when you last rehearsed it.

  • Answer: What does one successful task cost?
    Answer

    Give a number with its arithmetic: model calls and their token counts, retrieval and infrastructure, multiplied by the calls one successful task actually requires, including retries and failures. Say which component dominates, how it scales with volume, and what you would change first if the cost had to halve.

  • Back every answer with artifacts
    You need defensible answers backed by artifacts.
    Answer

    Every answer above points at something in the repository: the experiment, the evaluation run, the trace, the threat model, the rollback note, the cost calculation. An answer given from memory with nothing to open is not defensible. Assemble the artifacts before the walkthrough, not during it.

Universal requirements

The eight conditions 01_LEARNING_RULES.md applies to every stage. Expand one to see what it actually asks for.
0/8
  • Core concepts can be explained from memory.
    What this asks for

    Every subject in this stage has review questions. The condition is met when you can answer them out loud, without notes and without looking anything up, in your own words rather than a recited definition. An explanation you can only give with the material open is recognition, not recall.

  • Required exercises are complete.
    What this asks for

    Complete means each exercise satisfies its stated requirements and its done-when criteria, not that you attempted it. Where an exercise says you should be able to explain or defend something, that explanation is part of completing it. A stage whose source lists no exercises meets this through its owned project milestone instead.

  • Stage project works.
    What this asks for

    Works means it runs end to end from a clean checkout, on the inputs it was built for, with the failure cases it claims to handle actually handled. It is not a notebook that produced a result once. Someone else following your README should be able to run it without asking you a question.

  • Tests or verification exist.
    What this asks for

    There is something that would fail if the behaviour regressed, and you have watched it fail. That can be automated tests or a written verification procedure with recorded results, depending on what the stage produces. A test that has only ever passed is evidence of nothing.

  • README explains decisions.
    What this asks for

    The README says what the project is, how to install, run and test it, and why it is built the way it is: the choices you made, the alternatives you rejected, and what you deliberately left out. A list of commands with no reasoning does not meet this condition.

  • You can reproduce the core implementation without copying.
    What this asks for

    Delete the central piece and write it again from an empty file, without your previous version, a tutorial, or generated code in front of you. It does not have to be identical, it has to work and you have to be able to explain every line. This is the condition that separates having finished from being able.

  • You pass the stage self-assessment at >= 80%.
    What this asks for

    Record a gate exam and score yourself honestly against the dimensions the roadmap defines: recall, implementation, debugging, testing and design judgment. Elapsed time, hours watched and completed resources count for nothing here. Checking the boxes without a recorded exam does not open the gate.

  • Claude/ChatGPT reviewer finds no foundational blocker.
    What this asks for

    Ask an AI reviewer to examine the work against this stage's concepts and report foundational misunderstandings, not style. A foundational blocker is a misconception that later stages would build on, such as leakage, a broken abstraction, or an explanation that is confidently wrong. Nothing in that class may remain open when you pass.

Recorded exam

No exam recorded. Checking every requirement is not sufficient.

Evidence

Artifacts linked to this stage

Add evidence
No stage evidence yet.