Phase 1 MVP

Build career momentum with visible, repeatable progress.

Single-user private mode

Python Practice

Hands-on drills tuned for AI engineering.

Practice implementation muscle memory instead of passively reviewing notes.

Python Refresh Drill 1

easy

Python Refresh

Implement a solution for **python-refresh** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Data Transformation Drill 2

medium

Data Transformation

Implement a solution for **data-transformation** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Api Async Drill 3

hard

Api Async

Implement a solution for **api-async** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Prompt Formatting Drill 4

easy

Prompt Formatting

Implement a solution for **prompt-formatting** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Embeddings Drill 5

medium

Embeddings

Implement a solution for **embeddings** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Retrieval Drill 6

hard

Retrieval

Implement a solution for **retrieval** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Evaluation Drill 7

easy

Evaluation

Implement a solution for **evaluation** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

System Design Coding Drill 8

medium

System Design Coding

Implement a solution for **system-design-coding** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Python Refresh Drill 9

hard

Python Refresh

Implement a solution for **python-refresh** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Data Transformation Drill 10

easy

Data Transformation

Implement a solution for **data-transformation** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Api Async Drill 11

medium

Api Async

Implement a solution for **api-async** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Prompt Formatting Drill 12

hard

Prompt Formatting

Implement a solution for **prompt-formatting** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Embeddings Drill 13

easy

Embeddings

Implement a solution for **embeddings** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Retrieval Drill 14

medium

Retrieval

Implement a solution for **retrieval** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Evaluation Drill 15

hard

Evaluation

Implement a solution for **evaluation** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

System Design Coding Drill 16

easy

System Design Coding

Implement a solution for **system-design-coding** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Python Refresh Drill 17

medium

Python Refresh

Implement a solution for **python-refresh** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Data Transformation Drill 18

hard

Data Transformation

Implement a solution for **data-transformation** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Api Async Drill 19

easy

Api Async

Implement a solution for **api-async** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Prompt Formatting Drill 20

medium

Prompt Formatting

Implement a solution for **prompt-formatting** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Embeddings Drill 21

hard

Embeddings

Implement a solution for **embeddings** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Retrieval Drill 22

easy

Retrieval

Implement a solution for **retrieval** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Evaluation Drill 23

medium

Evaluation

Implement a solution for **evaluation** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

System Design Coding Drill 24

hard

System Design Coding

Implement a solution for **system-design-coding** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Python Refresh Drill 25

easy

Python Refresh

Implement a solution for **python-refresh** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Data Transformation Drill 26

medium

Data Transformation

Implement a solution for **data-transformation** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Api Async Drill 27

hard

Api Async

Implement a solution for **api-async** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Prompt Formatting Drill 28

easy

Prompt Formatting

Implement a solution for **prompt-formatting** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Embeddings Drill 29

medium

Embeddings

Implement a solution for **embeddings** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Retrieval Drill 30

hard

Retrieval

Implement a solution for **retrieval** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Evaluation Drill 31

easy

Evaluation

Implement a solution for **evaluation** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

System Design Coding Drill 32

medium

System Design Coding

Implement a solution for **system-design-coding** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Python Refresh Drill 33

hard

Python Refresh

Implement a solution for **python-refresh** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Data Transformation Drill 34

easy

Data Transformation

Implement a solution for **data-transformation** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Api Async Drill 35

medium

Api Async

Implement a solution for **api-async** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Prompt Formatting Drill 36

hard

Prompt Formatting

Implement a solution for **prompt-formatting** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Embeddings Drill 37

easy

Embeddings

Implement a solution for **embeddings** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Retrieval Drill 38

medium

Retrieval

Implement a solution for **retrieval** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Evaluation Drill 39

hard

Evaluation

Implement a solution for **evaluation** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

System Design Coding Drill 40

easy

System Design Coding

Implement a solution for **system-design-coding** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Python Refresh Drill 41

medium

Python Refresh

Implement a solution for **python-refresh** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Data Transformation Drill 42

hard

Data Transformation

Implement a solution for **data-transformation** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Api Async Drill 43

easy

Api Async

Implement a solution for **api-async** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Prompt Formatting Drill 44

medium

Prompt Formatting

Implement a solution for **prompt-formatting** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Embeddings Drill 45

hard

Embeddings

Implement a solution for **embeddings** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Retrieval Drill 46

easy

Retrieval

Implement a solution for **retrieval** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Evaluation Drill 47

medium

Evaluation

Implement a solution for **evaluation** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

System Design Coding Drill 48

hard

System Design Coding

Implement a solution for **system-design-coding** that reflects a real AI engineering workflow. Focus on readability, typed outputs, and failure handling.

Open exercise

Normalize provider payloads into a typed response model

easy

Python Refresh

Write a function that accepts a loose provider response and returns a normalized typed payload with explicit error handling.

Open exercise

Aggregate model latency metrics from JSONL traces

medium

Data Transformation

Given a JSONL file of request traces, compute per-model latency averages, P95, and failure counts.

Open exercise

Retry a provider call with timeout and backoff

medium

Api Async

Implement an async wrapper that retries retryable provider failures with a timeout and bounded backoff.

Open exercise

Render a safe prompt template from user input

easy

Prompt Formatting

Build a template renderer that separates trusted system instructions from untrusted user input and outputs a final prompt payload.

Open exercise

Score retrieval candidates with metadata boosts

medium

Retrieval

Combine vector similarity and metadata weighting into a final retrieval score for candidate chunks.

Open exercise

Compute faithfulness and citation coverage from judge results

medium

Evaluation

Take evaluation outputs and summarize pass rate, faithfulness score, and citation coverage per prompt version.

Open exercise

Parse JSONL benchmark rows into normalized records

easy

Python Refresh

Implement this task with explicit validation, predictable output shape, and enough error handling that it could survive reuse in a real AI workflow.

Open exercise

Summarize token usage by endpoint and model

easy

Data Transformation

Implement this task with explicit validation, predictable output shape, and enough error handling that it could survive reuse in a real AI workflow.

Open exercise

Detect malformed retrieval chunks before indexing

medium

Retrieval

Implement this task with explicit validation, predictable output shape, and enough error handling that it could survive reuse in a real AI workflow.

Open exercise

Enforce provider timeout defaults from env config

medium

Api Async

Implement this task with explicit validation, predictable output shape, and enough error handling that it could survive reuse in a real AI workflow.

Open exercise

Compute confusion matrix from classifier review logs

medium

Evaluation

Implement this task with explicit validation, predictable output shape, and enough error handling that it could survive reuse in a real AI workflow.

Open exercise

Build a slug generator for lesson and project records

easy

Python Refresh

Implement this task with explicit validation, predictable output shape, and enough error handling that it could survive reuse in a real AI workflow.

Open exercise

Validate article metadata before publish

easy

Data Transformation

Implement this task with explicit validation, predictable output shape, and enough error handling that it could survive reuse in a real AI workflow.

Open exercise

Batch provider requests with concurrency limits

hard

Api Async

Implement this task with explicit validation, predictable output shape, and enough error handling that it could survive reuse in a real AI workflow.

Open exercise

Merge keyword and vector retrieval results

medium

Retrieval

Implement this task with explicit validation, predictable output shape, and enough error handling that it could survive reuse in a real AI workflow.

Open exercise

Compare benchmark runs and highlight regressions

medium

Evaluation

Implement this task with explicit validation, predictable output shape, and enough error handling that it could survive reuse in a real AI workflow.

Open exercise

Parse CLI args for an evaluation runner

easy

Python Refresh

Implement this task with explicit validation, predictable output shape, and enough error handling that it could survive reuse in a real AI workflow.

Open exercise

Group API errors into actionable retry buckets

medium

Data Transformation

Implement this task with explicit validation, predictable output shape, and enough error handling that it could survive reuse in a real AI workflow.

Open exercise

Build an async health check for provider adapters

medium

Api Async

Implement this task with explicit validation, predictable output shape, and enough error handling that it could survive reuse in a real AI workflow.

Open exercise

Filter retrieval contexts by recency and source type

easy

Retrieval

Implement this task with explicit validation, predictable output shape, and enough error handling that it could survive reuse in a real AI workflow.

Open exercise

Score prompt variants by pass rate and cost

medium

Evaluation

Implement this task with explicit validation, predictable output shape, and enough error handling that it could survive reuse in a real AI workflow.

Open exercise

Write a pathlib-based artifact export helper

easy

Python Refresh

Implement this task with explicit validation, predictable output shape, and enough error handling that it could survive reuse in a real AI workflow.

Open exercise

Clean scraped text before chunking

easy

Data Transformation

Implement this task with explicit validation, predictable output shape, and enough error handling that it could survive reuse in a real AI workflow.

Open exercise

Throttle background ingestion tasks with backpressure

hard

Api Async

Implement this task with explicit validation, predictable output shape, and enough error handling that it could survive reuse in a real AI workflow.

Open exercise

Assemble citation spans from retrieved snippets

hard

Retrieval

Implement this task with explicit validation, predictable output shape, and enough error handling that it could survive reuse in a real AI workflow.

Open exercise

Audit benchmark failures by category

medium

Evaluation

Implement this task with explicit validation, predictable output shape, and enough error handling that it could survive reuse in a real AI workflow.

Open exercise

Map provider enums into internal response states

easy

Python Refresh

Implement this task with explicit validation, predictable output shape, and enough error handling that it could survive reuse in a real AI workflow.

Open exercise

Compute rolling latency stats for model routes

medium

Data Transformation

Implement this task with explicit validation, predictable output shape, and enough error handling that it could survive reuse in a real AI workflow.

Open exercise

Retry only idempotent ingestion steps

hard

Api Async

Implement this task with explicit validation, predictable output shape, and enough error handling that it could survive reuse in a real AI workflow.

Open exercise

Rank support documents with freshness boosts

medium

Retrieval

Implement this task with explicit validation, predictable output shape, and enough error handling that it could survive reuse in a real AI workflow.

Open exercise

Build a review queue from low-confidence outputs

medium

Evaluation

Implement this task with explicit validation, predictable output shape, and enough error handling that it could survive reuse in a real AI workflow.

Open exercise

Serialize experiment configs to reproducible snapshots

easy

Python Refresh

Implement this task with explicit validation, predictable output shape, and enough error handling that it could survive reuse in a real AI workflow.

Open exercise

Prepare dashboard series from daily usage rows

easy

Data Transformation

Implement this task with explicit validation, predictable output shape, and enough error handling that it could survive reuse in a real AI workflow.

Open exercise

Wrap streaming provider responses into stable chunks

hard

Api Async

Implement this task with explicit validation, predictable output shape, and enough error handling that it could survive reuse in a real AI workflow.

Open exercise

Deduplicate retrieval candidates across indexes

medium

Retrieval

Implement this task with explicit validation, predictable output shape, and enough error handling that it could survive reuse in a real AI workflow.

Open exercise

Calculate judge agreement on evaluation labels

hard

Evaluation

Implement this task with explicit validation, predictable output shape, and enough error handling that it could survive reuse in a real AI workflow.

Open exercise

Protect temp files during dataset generation

easy

Python Refresh

Implement this task with explicit validation, predictable output shape, and enough error handling that it could survive reuse in a real AI workflow.

Open exercise

Reconcile mismatched event timestamps

medium

Data Transformation

Implement this task with explicit validation, predictable output shape, and enough error handling that it could survive reuse in a real AI workflow.

Open exercise

Implement bounded polling for long-running jobs

medium

Api Async

Implement this task with explicit validation, predictable output shape, and enough error handling that it could survive reuse in a real AI workflow.

Open exercise

Expand metadata filters into SQL-ready conditions

medium

Retrieval

Implement this task with explicit validation, predictable output shape, and enough error handling that it could survive reuse in a real AI workflow.

Open exercise