AI Engineering Programme Start here Weeks Playground Open Codespace

The programme

Six weeks, one support-desk agent, numbers you measured yourself.

A software company supports versions 2 and 3 of its product. The two manuals are worded almost identically and differ in substance, so an answer from the wrong one is worse than no answer. You build the agent its support desk uses: it finds out which version the customer runs, answers only from that version's manual with a citation or declines, looks up and analyses the customer's own data, and proposes the next action, carrying it out only when a person approves. It starts in week 1 and changes every week, until someone else can run it and you can defend every decision in it, with an AI assistant in hand and without one.

Weekswhat each one leaves behind

WeekLeaves behindHoursSession
0Foundations gate
Software foundations
A service that takes documents, parses and stores them, with the desk's customers and tickets already loaded. No model anywhere yet.5Session 1: Discovery
1The model as a component, and its first tools
Model as a component, Agents and tools
A model behind an interface: it survives the provider misbehaving, never pays twice, records what it cost and swaps provider from a setting. Output against a schema, and the agent's first two tools, get_customer and get_ticket.8 to 10Session 2: Direction
2Context and retrieval, as the agent's main tool
Context engineering, Retrieval
Hybrid search, keyword and meaning together, restricted to the customer's version and called by the agent as a tool, with every choice in it made by a number.8 to 10no session
3Grounding and evaluation, of answers and of paths
Grounding, Evaluation
Answers that cite their source and decline when the evidence is thin, your own test set, a judge you checked against labels, and the agent's path measured as well as its answer.9 to 10Session 3: Observation
4Agents that act, and where agency pays
Agents and tools, Real systems (MCP), Evaluation
An agent that looks up, analyses and acts: a reply, an escalation or a credit, the risky ones only with approval enforced in code. An MCP server, and a routing table that says where an agent and a bigger model pay.9 to 10no session
5Observability, security and privacy
Observability and cost, Security and guardrails
Least agency first, a defence against instructions planted in documents and tool results, personal data masked before it reaches the model, and cost and time traced per step.8 to 9no session
6Shipping it, presenting it and proving it
Shipping and proving it
A published build someone else can run, a rollback you performed, the trade-off table, a recorded five-minute demo, and one page saying what it did for the business.8 to 9Session 4: Defence

Each weekhow a week works

Every week has the same shape: Read, See, Build, Measure, Decide, Submit. You never scaffold a new project after Week 0. Each week names one lesson; every build item is core (needed for it, checked by the gate) or stretch (shown to your mentor, never blocking).

flowchart LR
  A["Read
the concept, 1 h"] --> B["See
the scripts, 0.5–2 h"] B --> C["Build
5–7 h, any assistant, logged"] C --> D["Check
make check WEEK=N"] D --> M["Measure
make evidence WEEK=N"] M --> E["Decide
decisions/week-N.md"] E --> F["Submit
PR: checks"] F --> G["merge
hidden evaluation, mentor's brief"]

Your route (start, core or pro) is set by your mentor at discovery from two questions, in order: can you do the basic work of the track at all; and do you check what you produce. It holds for the programme, with one correction point at session 2. The route changes what you are given, never what is measured:

start core pro
Exercises faults named, a worked example given (weeks/N/routes/worked_example.py) faults present, not located, count not given: each exercise file is complete with mistakes planted no helpers, one real constraint added (weeks/N/routes/pro.md)
Pace slow, mentor-supported compressed self-directed
Finished piece modest and completed full harder, made public

You make your repository from your route's template, so it holds that route and no other; each week's routes/ page says what it means for the week. If the route is corrected at session 2, the programme opens a pull request on your repository that swaps the files for the weeks still ahead.

Judgedsessions and gates

Mentor time is four sessions, and nothing else except up to two fifteen-minute unblock calls. That is the framework's rule, and it is what makes the route matter: the sessions are where the hours go, so what they are spent on depends on where you started.

Session When Length What happens
1. Discovery Week 0 45 min An observed task sets your route and takes the starting measure. The finished piece is agreed
2. Direction end of Week 1 45 min Route confirmed or a correction recommended. Unseen items with your assistant; your decisions without it
3. Observation end of Week 3 60 min You explain the gap between your score and the hidden score, diagnose a hidden failure with your assistant, then defend your threshold and judge without it
4. Defence end of Week 6 60 min Demo; three decisions defended with tools closed; an unseen change with your assistant; the starting measure again

From session 2, every session has a half where you drive your own AI assistant on something unseen while your mentor watches how you steer it, and a half with tools closed. Interviews now have both kinds of round.

Weeks 2, 4 and 5 have no session: the gate, the self-tests and this page are your feedback, and your mentor passes on the hidden evaluation's totals. Your mentor reads a one-page brief built from each week you merge (they do not read your diff) and gives a one-click verdict: on track, something to probe at the next session, or an offer of an unblock call.

Unblock calls: up to two, fifteen minutes each, on request, after you have attempted the thing yourself. Send what you tried with the request.

Where the hours go, by route:

Route Sessions 2 and 3 concentrate on Pace
start the basics: Weeks 1–2, getting the model layer and retrieval working at all slow, mentor-supported; use both unblock calls early
core quality: Weeks 3–5, checking what you produce: evaluation, guardrails, traces compressed
pro evidence: Week 6, the deployed piece, the write-up, the defence self-directed

Three layers of evidence, from cheapest to most human. None of them is self-reported.

Layer Who What it measures
The gate: make check WEEK=N CI, on every pull request, with a fake model so no key is needed Lint, strict types, that week's tests under two fake providers, the records, and from Week 3 the evaluation gate, from Week 5 the attack gate
The hidden evaluation The programme, on each week you merge from week 2, beside its reference solution: every item on the fake model (with floors), a sample on your model.json model (no floor) About 150 questions and 20 agent tasks written for your product, never shown to you: your score is a share of the reference's, and your mentor brings you the totals
Your records You write; the gate checks them; your mentor's brief shows them The decision and the numbers behind it, what an assistant did and what you checked, your reflection
Your mentor's judgement Sessions, against one rubric How you steer an assistant on something unseen, and whether you can explain your own work without one

Work reaches your mentor a day early, so the session is not spent finding out what is there. You talk more than your mentor, because otherwise the hour drifts into them solving the problem.

Understanding sets a ceiling: at the Defence your mentor judges whether you can explain your own work, and that judgement caps what the programme records; it never adds to it. You are always shown what you produced and what it missed. You are never shown the measure that goes to the programme, and neither is this page. The self-tests here are yours alone.

Skillsthe eleven areas, and where each lands

AreaCovered in
1Software foundationsWeek 0
2Model as a componentWeek 1
3Context engineeringWeek 2
4RetrievalWeek 2
5GroundingWeek 3
6Agents and toolsWeek 1, 4
7Real systems (MCP)Week 4
8EvaluationWeek 3, 4
9Observability and costWeek 5
10Security and guardrailsWeek 5
11Shipping and proving itWeek 6

Afterwhat you can say, and show

How would you move off this provider?

Edit one line of configuration. Nothing in the service names a provider, a model or an SDK, and the tests run under two of them to prove it.

built in week 1

Design the tool you would give it.

I wrote the schemas for get_customer and get_ticket, measured how often the model called them correctly before and after I changed the descriptions, and the tools refuse in words when the arguments are wrong.

built in week 1

What stops it answering a question it should not?

Two gates. Nothing retrieved clears the relevance threshold, so it declines before the model is called; and afterwards, the model has to say the passages support the answer.

built in week 3

How do you know a change made it better?

The evaluation runs on every proposed change and fails the change if the score drops. I can show you a seeded bad change being blocked, and a test set I never saw scored every week I merged.

built in week 3

How do you test an agent?

On its path as well as its answer: the right tool, in the right order, in how many steps, and never an action without approval, on tasks I wrote down before I built it.

built in week 3

Where did you give the model agency, and where did you refuse it?

I ran plain code, a fixed workflow and an agent on three kinds of task. The routing table says which each deserves, and which model, with the numbers. Nothing that writes or spends runs without a person's approval, and that is enforced in code, not asked for in the prompt.

built in week 4

What happens if a document or a ticket tries to give your system instructions?

It was a working attack before the defence and is not now, and the test that proves it runs in the gate. The agent cannot do much even if it obeys: the capability was removed first.

built in week 5

What did it cost?

Per request and per step, recorded, with a cost-per-question view over time.

built in week 5

What did the feature do for the business?

Tickets resolved without a person, at a cost per ticket, with no action nobody approved. The one page says the numbers and where they came from.

built in week 6

Scopewhat this deliberately is not

No model training or fine-tuning. No multi-agent systems. No production latency or throughput guarantees. No authentication or multi-tenancy. No paid infrastructure of any kind.

Agency is earned, not assumed. In week 4 you run plain code, a fixed workflow and an agent on three kinds of task, and your routing table says which each deserves, with the numbers. "No agent" is a good answer for a task type when the numbers say so; it is not the expected answer for the whole system, because the desk's tickets include steps that need judgement.

Moreif you want the detail