Skip to content

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

  1. Read the week on this site. Start with the opening scene, then Think of it like… and If you already write software.
  2. Only then look at the code. It is there to prove the picture, not to be copied blindly.
  3. 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.
  4. Do the exercise in exercises/ml/week-XX/starter.py.
  5. 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.

Week 0 — Strong Python →