AI Engineering: Build, evaluate and design AI systems
Revision notes for software engineers who have heard the AI terms and want to build with them: call an LLM, open the box (embeddings, neural networks, transformers, training), add knowledge with RAG, let it act with agents, ship it to production, and design AI systems with a delivery framework and worked breakdowns. Each lesson is short and links to the best external resources to go deeper.
0 of 15 modules complete · 1 in progress · 14 to come
Locked. These lessons are not open to the public yet.
Start with lesson 1.1: What AI actually is, and the terms you have heard-
01
Orientation
The terms you have heard, decoded, and the map of what follows.
2 / 6- 1.1What AI actually is, and the terms you have heardLocked
- 1.2Kinds of learning, and discriminative vs generative modelsLocked
- 1.3Deterministic vs probabilistic softwareSoon
- 1.4Training vs inference; models, parameters and datasetsSoon
- 1.5The AI engineering landscape and rolesSoon
- 1.6The delivery framework and the spine projectSoon
-
02
Your first LLM app
One API call, grown into a small app with a first eval.
0 / 10- 2.1Anatomy of an LLM API call: system, developer and user messagesSoon
- 2.2Tokens, context windows and costSoon
- 2.3Prompting fundamentals: zero-shot and few-shotSoon
- 2.4Structured outputsSoon
- 2.5Tool callingSoon
- 2.6Streaming responsesSoon
- 2.7Hallucinations and why they happenSoon
- 2.8Your first evalSoon
- 2.9Errors, retries and fallbacksSoon
- 2.10Hosted vs open-weight models; model selectionSoon
-
03
Representing things
Text becomes numbers, and numbers can be compared.
0 / 5- 3.1Tokenisation and vocabulariesSoon
- 3.2Vectors and embeddingsSoon
- 3.3Matrices as transformationsSoon
- 3.4Similarity and distance: cosine and EuclideanSoon
- 3.5Before transformers: bag of words, TF-IDF and Word2VecSoon
-
04
How machines learn
Loss, gradients and the habits of mind from classical ML that everything later reuses.
0 / 7- 4.1What learning means: loss functionsSoon
- 4.2Gradient descentSoon
- 4.3Features, labels and train, validation and test setsSoon
- 4.4Overfitting and bias-varianceSoon
- 4.5Accuracy, precision, recall, F1 and the confusion matrixSoon
- 4.6Linear and logistic regression from scratchSoon
- 4.7Probability, entropy and cross-entropySoon
-
05
Neural networks
Layers of simple functions, trained by backpropagation.
0 / 6- 5.1Neurons, layers and activationsSoon
- 5.2The forward passSoon
- 5.3BackpropagationSoon
- 5.4Train a network from scratch with NumPySoon
- 5.5PyTorch: tensors, autograd and the training loopSoon
- 5.6CNNs and RNNs: what they solved and where they hit a wallSoon
-
06
Transformers
Attention, the idea behind every modern language model.
0 / 6- 6.1Attention intuition: query, key and valueSoon
- 6.2Self-attention and multi-head attentionSoon
- 6.3Positional encoding, residuals, layer norm and feed-forward blocksSoon
- 6.4The full transformer: encoder, decoder and encoder-decoderSoon
- 6.5What building a mini GPT teaches youSoon
- 6.6Next-token prediction and sampling: temperature, top-k and top-pSoon
-
07
Training and serving LLMs
How a base model becomes an assistant, and what it costs to run.
0 / 6- 7.1Pre-trainingSoon
- 7.2Fine-tuning and instruction tuningSoon
- 7.3Alignment: RLHF and preference optimisationSoon
- 7.4Parameter-efficient fine-tuning: LoRA and QLoRASoon
- 7.5Inference: KV cache, batching and quantisationSoon
- 7.6Multimodal and speech modelsSoon
-
08
Embeddings, search and RAG
Let the model answer from your own documents, and measure whether it did.
0 / 14- 8.1Why LLMs need external knowledgeSoon
- 8.2Embedding models in practice: dimensions, dense and sparseSoon
- 8.3Keyword search and BM25Soon
- 8.4Vector search and indexes: HNSW and IVFSoon
- 8.5Metadata filtering and hybrid searchSoon
- 8.6Reranking and cross-encodersSoon
- 8.7Document ingestion and parsingSoon
- 8.8Chunking strategiesSoon
- 8.9RAG architecture and the indexing pipelineSoon
- 8.10Query rewriting and context constructionSoon
- 8.11Advanced RAG: multi-hop and agentic retrievalSoon
- 8.12Evaluating RAGSoon
- 8.13Debugging failed retrievalSoon
- 8.14Data quality and deduplication for AI pipelinesSoon
-
09
AI agents
From answering questions to taking actions, safely.
0 / 14- 9.1LLM application vs agentSoon
- 9.2The agent loop and ReActSoon
- 9.3Tool design and executionSoon
- 9.4Model Context Protocol (MCP)Soon
- 9.5Planning and task decompositionSoon
- 9.6Memory: short-term and long-termSoon
- 9.7Context managementSoon
- 9.8Workflows and state machinesSoon
- 9.9Multi-agent systemsSoon
- 9.10Human-in-the-loop and approvalsSoon
- 9.11Failure recovery and resumabilitySoon
- 9.12Prompt injection and untrusted inputSoon
- 9.13Tool permissions and sandboxingSoon
- 9.14Evaluating agentsSoon
-
10
Full-stack AI applications
The product around the model: APIs, streaming, state and the interface.
0 / 10- 10.1Anatomy of an AI app and its service boundariesSoon
- 10.2Building AI APIs with FastAPISoon
- 10.3Auth and multi-tenant data isolationSoon
- 10.4Streaming end to end with SSESoon
- 10.5Conversations and message persistenceSoon
- 10.6Background jobs and async workflowsSoon
- 10.7Storing embeddings and agent stateSoon
- 10.8Frontend: chat UI, streaming and tool statusSoon
- 10.9Multimodal inputs: files, images and audioSoon
- 10.10Integrating AI with existing servicesSoon
-
11
Production AI engineering
Evaluate, observe, secure, pay for and release it.
0 / 12- 11.1Why AI testing differs; building eval datasetsSoon
- 11.2LLM-as-judge and regression evals in CISoon
- 11.3Tracing multi-step workflowsSoon
- 11.4Logging prompts and tool calls safely; privacySoon
- 11.5Monitoring tokens, latency and time to first tokenSoon
- 11.6Cost control: routing, caching and batchingSoon
- 11.7Reliability: timeouts, rate limits and fallback modelsSoon
- 11.8Security: data exfiltration and guardrailsSoon
- 11.9Deploying on AWSSoon
- 11.10CI/CD for prompts, models and releasesSoon
- 11.11Product metrics and feedback loopsSoon
- 11.12Operating self-hosted models: GPU basicsSoon
-
12
AI system design framework
The routine to follow for any AI design problem, aligned with the System Design delivery framework.
0 / 3- 12.1How to approach an AI system design problemSoon
- 12.2Estimating latency, throughput and costSoon
- 12.3Choosing the approach: prompt vs RAG vs fine-tune vs agentSoon
-
13
Breakdowns: easy
Single-purpose AI applications.
0 / 5- 13.1Design a text summarisation serviceSoon
- 13.2Design a PDF question-answering applicationSoon
- 13.3Design a semantic search engineSoon
- 13.4Design an AI chatbotSoon
- 13.5Design an AI email assistantSoon
-
14
Breakdowns: medium
Several AI components working together.
0 / 5- 14.1Design an enterprise knowledge assistantSoon
- 14.2Design an AI customer support systemSoon
- 14.3Design a natural-language-to-SQL platformSoon
- 14.4Design an AI coding assistantSoon
- 14.5Design a document extraction pipelineSoon
-
15
Breakdowns: hard
Scale, quality, reliability and orchestration.
0 / 5- 15.1Design a ChatGPT-like platformSoon
- 15.2Design an AI agent platformSoon
- 15.3Design a coding agentSoon
- 15.4Design an enterprise-scale RAG platformSoon
- 15.5Design a real-time voice assistantSoon