The six dimensions

What the diagnosis measures.

Every diagnosis scores your work on the same six concept dimensions, each tiered beginner / junior / senior. The levels describe your work on that dimension — never you.

01

SQL & Querying

Correctness and performance of set-based queries — joins, windows, aggregation, and reading what the engine actually does.

Beginner

Writes correct single-table queries and basic joins; leans on SELECT * and row-by-row thinking.

Junior

Comfortable with multi-table joins, window functions, and aggregation; not yet reasoning about plans or skew.

Senior

Designs queries for correctness and cost at scale. Controls join order, partition pruning, and predicate pushdown deliberately.

02

Data Modeling & Storage Design

Schema, keys, normalization, file format, and partitioning chosen against real access patterns and cost.

Beginner

Models tables ad hoc; little normalization or key discipline.

Junior

Applies normalization, keys, and basic dimensional modeling; format and partitioning are mostly defaults.

Senior

Chooses schema, format, and partitioning against access patterns and cost; reasons about evolution and contracts.

03

Programming for Data (Python)

Structure, testing, error handling, and resource-awareness of the code that moves and transforms data.

Beginner

Writes working scripts; limited structure, error handling, or tests.

Junior

Modular code with some tests; idiomatic but not yet defensive about edge cases or memory.

Senior

Composable, tested, observable code that handles failure, backpressure, and data volume by design.

04

Distributed Data Processing

Batch and stream as one concept area — partitioning, shuffles, state, skew, late data, and delivery semantics.

Beginner

Uses a framework's defaults; unaware of shuffles, partitioning, or batch/stream trade-offs.

Junior

Understands partitioning and shuffles; writes batch and basic streaming jobs but tunes reactively.

Senior

Reasons about distribution, state, and exactly-once vs at-least-once; designs for skew, late data, and recovery.

05

Pipeline Orchestration & Reliability

Idempotency, retries, backfills, observability, and failure isolation — whether the pipeline survives a bad day.

Beginner

Runs steps manually or with brittle scheduling; little idempotency.

Junior

Builds DAGs with retries; partial-failure and backfill handling is incomplete.

Senior

Designs idempotent, observable pipelines with clear SLAs, safe backfills, and failure isolation.

06

System & Scenario Judgment

Cross-cutting senior judgment — framing ambiguous problems, naming assumptions and trade-offs, and defending decisions.

Beginner

Solves the stated task; doesn't surface trade-offs or constraints.

Junior

Identifies obvious trade-offs; weighs cost, latency, and complexity inconsistently.

Senior

Frames ambiguous problems, names assumptions and trade-offs, and defends decisions against cost, scale, and failure.