A pragmatic guide to LLM evals for devs

The Pragmatic Engineer ยท email ยท 2025-12-02 Reader ๐Ÿ–ฅ๏ธ

EvalsFeedback LoopsLLM-as-Judge
LLM evaluation cannot be bolted on as generic scored metrics or traditional deterministic unit tests; it must be built bottom-up from systematic error analysis of real interaction traces, using code-based assertions for objectively-checkable failures and a human-calibrated LLM-as-judge for subjective ones.

practical ยท expository โ€” A how-to guide (guest-written by Hamel Husain via Gergely Orosz's newsletter) walking developers through a concrete workflow for building LLM evals โ€” argues for a specific practice, illustrated with a single running case study (NurtureBoss).

Structure

PartRole
The 'vibe-check' trap and the Three Gulfs framing (section 1)Problem statement
Error analysis workflow: data viewer, open coding, axial coding, prioritization by frequency (section 2)Core method / evidence
Code-based evals vs. LLM-as-judge, matched to deterministic vs. subjective failure types (section 3)Method โ€” tool selection
Building an LLM-as-judge from a hand-labeled, PASS/FAIL golden dataset (section 4, truncated)Method continuation, cut off mid-explanation by paywall
Judge validation via TPR/TNR against human labels; CI/CD + production monitoring; the 'flywheel of improvement' (sections 5-7, only outline-level visible)Promised conclusion / operationalization โ€” not available in this capture

Key terms

Propositions

Arguments

Software engineers building or shipping LLM-based features should adopt a structured error-analysis-first evals workflow rather than either ad hoc vibe-checking or naive unit-test-style TDD. strength: high
Explicit premises:
Implicit premises:
Inferences:

Narratives

Questions addressed

Gaps

Related documents