Applied ML Foundations for SaaS Analytics¶
CloudWave loses about 2% of its customers every month — roughly 550 people. Priya's team can call 80 a week — she needs the right 80. Helen wants to know whether a churn gap is real before anyone touches pricing. You just joined as the ML engineer who has to answer both.
Course details — who this is for, prerequisites
Written for working engineers. You must already program; you do not need to already program in Python. You do not need calculus, linear algebra, or a stats degree. This is an introduction to ML, not an introduction to coding. Weeks 0–20 (21 sessions). Job path 0–17. Check the course prerequisites before Week 0.
CloudWave is a fake B2B SaaS company. You will use the same customers from "what is a Python dataclass" through a nightly scoring job — then, if you want, the pictures behind CNNs and Transformers. Full cast, numbers, and story continuity: CloudWave story bible.
Who you work with¶
| Person | Role | Wants |
|---|---|---|
| Priya | CS lead | 80 names a week, not an AUC |
| Marcus | PM | A chart, and both precision and recall |
| Ana | On-call / data | A feature contract that doesn't leak the future |
| Helen | CFO | One page, in dollars |
The path (weeks 0–20)¶
| Week | What you are really learning |
|---|---|
| 0 | Python as glue. Names vs values. A fit / predict class. |
| 1 | NumPy as a typed column. Stop looping 270k rows. |
| 2 | Pandas as SQL. Customer 360. The join that explodes. |
| 3 | SQL is the source of truth. as_of. Grain tests. |
| 4 | Charts as API responses. Honest axes. |
| 5 | p-values as flaky-test statistics. A ranker is not a lever. |
| 6 | Features as a /predict contract. Leakage. PII stays out. |
| 7 | Classification = score + threshold. Staffing, not jargon. |
| 8 | Labels lie. Horizon, censoring, PR-AUC, calibration. |
| 9 | Regression in dollars. Residual trumpets. |
| 10 | Clustering as unsorted piles. Personas, not APIs. |
| 11 | Rank a list. Precision@k. Beat ORDER BY n_support. |
| 12 | PCA as JPEG for a wide table. |
| 13 | Ensembles as code review. Trees for tabular data. |
| 14 | Nets as mixers + switches. Why a tree still wins here. |
| 15 | A pickle is not production. Time split, predict(), drift. |
| 16 | The job pipeline. Gate. Prod dir. Tonight’s CSV. |
| 17 | On-call. The night the list breaks. Score as a tool. Golden tickets. |
| Capstone: ship | Closes the job path. Weeks 3, 6, 8, 11, and 15–17 as one weekly job, then the false alarms, the postmortem, and two briefs. CPU-only. |
| Briefs | Same scores, five definitions of shipped. Hangs off ship step 4. |
| 18 | Optional: CNNs as a sliding detector. |
| 19 | Optional: RNNs as a clipboard that walks. |
| 20 | Optional: Transformers as a soft join. |
| Capstone: sequences | Optional, CPU: CNN, RNN, and transformer over event sequences vs the Week-13 GBT, with a control and seeds. |
| Capstone: on-call specialist | Optional, after ship. Read-only assistant for the Week 17 runbook. One phase needs a GPU. The support agent is a different bot. |
What depends on what¶
The weeks are numbered, but not every week needs the one before it. The spine (double arrows) is the shortest path to shipping the churn list; the side branches can be taken in any order after the week they hang from.
0 Python ══▶ 1 NumPy ══▶ 2 Pandas ══▶ 3 SQL/as_of ══▶ 6 Features ══▶ 7 Classify ══▶ 8 Labels
│ ║
├── 4 Charts ║
└── 5 Signal vs noise (intervals + power, reused in 11, 15)
▼
9 Regression ─┐ 11 Rank a list
10 Clustering ─┼── optional detours, any order after 8 ║
12 PCA ─┘ ▼
13 Ensembles ─── validation folds + importance, feeds ───────────────▶ 15 The pickle
14 Neural nets ─── needed only for 18–20 ║
▼
16 Job ══▶ 17 On-call
║
▼
Capstone: ship ── briefs
║
▼
specialist (optional, GPU, read-only)
after 14: 18 CNN ──▶ 19 RNN ──▶ 20 Transformer ──▶ Capstone: sequences
Required job path is 0–17, closed by the job-path capstone — ship the churn score end to end, then survive its first incident. The tasks use weeks 3, 6, 8, 11, and 15–17. The briefs hang off step 4 of that job: same scores, five definitions of shipped. Weeks 18–20 are pictures, not how CloudWave ships churn. The on-call specialist comes after ship and is the only page in this course that needs a GPU. It is a read-only assistant for the Week 17 runbook. The support agent, which can move money, lives on the LangGraph track.
Weeks 18–20 are a boundary, not a research lab
They build the intuition required to understand modern ML systems. They do not teach research-level neural-network or transformer training from scratch.
After week 20 you should be able to:
- explain convolution, recurrence, and attention as software analogies
- know when a tree still wins on SaaS tables
- read a high-level transformer block diagram
You should not expect to implement FlashAttention, train GPT from scratch, or debug CUDA kernels.
Next step if you want that path (short list): Karpathy's Neural Networks: Zero to Hero, fast.ai, a standard DL book/course (Goodfellow/Bengio/Courville, or a university intro). Not this syllabus.
After each required week, try one item on the reasoning self-checks page (Predict / Diagnose / Choose / Defend).
How to take it¶
The recurring cycle:
analogy → visual → math → predict → run → compare → explain
- Read the week on this site. Start with the opening scene, then Think of it like… and If you already write software.
- Only then look at the code. It is there to prove the picture, not to be copied blindly.
- Before you run a block, write a prediction (what will move, what will not, why). Then run it and compare. If you were wrong, name the assumption that failed.
- Do the exercise in
exercises/ml/week-XX/starter.py. - Answer the reflection prompts in a note to yourself. If you cannot explain the week to another engineer in five minutes, reread the analogy, not the formula.
On weeks that already have a Before you run this box, use it as written:
## Before you run this
Predict:
1. Which metric will improve?
2. Which metric will worsen?
3. Why?
## Run it
Compare your result with your prediction.
## Explain the difference
If your prediction was wrong, what assumption was wrong?
Not every week has “metrics.” Adapt the three questions to the picture (weights, residuals, a curve) — the cycle stays the same.