Labs

Labs Overview

How TLD labs work — format, difficulty, scoring, and lifecycle.

What is a lab?

A TLD lab is a self-contained, broken infrastructure scenario with an automated validator. You receive a description of the problem, access to the broken environment, and a command to run when you think it's fixed.

Labs are organized into tracks (Docker, Linux, Kubernetes, etc.) and sections within each track. Each section teaches a specific concept through a series of related labs.

Lab format

Every lab on disk has the following structure:

text
labs/
└── dkr-fix-broken-dockerfile/
├── README.md # Scenario, objective, hints
└── validator.sh # Automated checker
FilePurpose
README.mdThe scenario the learner reads — objective, background, hints
validator.shBash script that exits 0 on pass, non-zero on fail

Difficulty levels

LevelWhat to expectTime estimate
BeginnerSingle concept, guided hints, clear error messages5–15 min
IntermediateMulti-step fixes, less guidance, real-world scenarios15–45 min
AdvancedProduction-grade incidents, multiple root causes, no hints45–120 min
ExpertSRE-level incidents, cascading failures, time pressure2–4 hours

Scoring and XP

Each lab awards XP based on difficulty and whether you used hints.

DifficultyXP (no hints)XP (with hints)
Beginner100 XP50 XP
Intermediate250 XP125 XP
Advanced500 XP300 XP
Expert1000 XP600 XP

Lab lifecycle

  1. 1
    Start

    tld lab start <lab-id> — pulls the Docker environment and prints the scenario.

  2. 2
    Solve

    Investigate and fix the broken system using real tools in your terminal.

  3. 3
    Validate

    tld check — runs the validator and reports which checks passed and which failed.

  4. 4
    Repeat

    Fix remaining failures and re-run tld check as many times as needed.

  5. 5
    Complete

    All checks pass — XP is awarded and the lab is marked complete in your history.

  6. 6
    Cleanup

    tld lab stop removes all containers and volumes created by the lab.