Frame the problem
Turn a vague request into a clear goal, constraints, and a way to recognize success.
Write a short brief →Start with a real problem. Sketch how the pieces connect, choose an approach, and test what happens when the conditions change. Leave with a decision you can explain.
GUIDED LAB / 15 MINUTES
Your assistant answers questions using a product manual. Its search service sometimes goes offline. Can you keep answers fast without showing customers outdated advice?
BUILD IT YOURSELF
Explore the working parts of an agent, from reading a request to checking its actions. Each stage gives you a small system to build and inspect.
Open the first build →SKILLS TO BUILD
Turn a vague request into a clear goal, constraints, and a way to recognize success.
Write a short brief →Decide where information lives, how components connect, and how failures are contained.
Draw a system map →Change one thing, compare results, and check whether the evidence supports your prediction.
Keep an experiment log →Explain which trade-off you chose, what could go wrong, and when you would revisit it.
Save a decision note →Understanding code, data, and model behavior still matters. These labs connect that knowledge to the choices you make when building with AI.
Compare a search architecture, investigate an unreliable assistant, or review a change before release. Each exercise asks you to explain your reasoning.
These numbers are a simplified teaching model. Use them to explore trade-offs, then benchmark your own workload; they are not measured production results.
Maximum groundedness and context precision using dense reranking and semantic hierarchy.
Operational simplicity: Multi-stage pipeline requires complex distributed monitoring.
OOM memory crashes when 10M embeddings and graph connections exceed server RAM.
Browse by the skill you want to strengthen, the kind of problem you enjoy, or your experience.
Write a tool-using agent from scratch, one piece per problem: parsing, dispatch, the loop, guardrails, memory, planning, evals.
The work left when an agent writes the code: turn requests into tests, debug production failures, measure LLM output, and decide what ships.
The everyday Python behind data and model code: dicts, nesting, text, caches and small parsers.
Scaling, encoding, splitting and reshaping data the way training pipelines actually need it.
Vectors, matrices, probability and optimisation, each implemented by hand so the formulas stop being abstract.
Regression, trees, k-means, naive Bayes, SVMs and the metrics that tell you whether any of it worked.
Forward passes, backprop, optimisers, convolutions and recurrent cells, the pieces inside every framework.
Attention, masks, positional encodings, sampling, the KV cache and the tricks that make inference fast.
Chunking, vector search, hybrid ranking, re-ranking and the checks that catch an ungrounded answer.
What surrounds the loop: MCP plumbing, caching, fallbacks, security checks, graphs and observability.
Training schedules, drift, rollouts, experiments and the arithmetic of serving models.
The classic patterns interviews still test: hashing, two pointers, windows, stacks, trees, graphs and DP.