AI Engineer Dojo Contents
Chapter 12

Tools of the Trade & Interview Prep

You don't need to memorize a tool to interview well — you need the categories and vocabulary, so you can map any company's stack onto concepts you understand. Then you assemble the whole thing once, yourself.

The tooling landscape, by category

The throughline: every tool implements the four-part eval (dataset, task, scorer, report) plus a way to track results over time. Learn the concept and the tools become interchangeable.

Questions you should be ready for

The broad opener, answered in three pillars

The most common screening question is also the vaguest: "How do you evaluate the quality and reliability of AI technologies and their output? What tools or metrics do you use?" It's an invitation to show you have a system, not a grab-bag of metrics. Structure the answer in three pillars and you cover the whole field in about ninety seconds:

The one-sentence version

"I evaluate on three fronts: offline — golden datasets with deterministic scorers and a validated LLM-judge, gated in CI; online — sampled production traffic, implicit-feedback signals, and real-time guardrails with drift monitoring; and operational — TTFT, cost, and latency, so quality is always measured against what it costs to serve." Then let the interviewer pull whichever thread they care about — you have a chapter behind each.

Capstone · ~25 minFree · mock task + judge

Assemble the whole framework

Tie it all together: a minimal eval framework — dataset → task → scorer → report — with a mock task and a mock judge, producing a sliced report. Runs free; flip USE_REAL_API and the same shape grades real model output with a real judge. This is what every tool you'll meet is, underneath.

Capstone code — runs free (mock by default)

"""Minimal eval framework: dataset -> task -> scorer -> report.
Every tool you'll meet is a version of these four parts."""
from statistics import mean

USE_REAL_API = False        # free mock by default; True needs a key

DATASET = [
    {"q": "refund window?",  "ctx": "Returns accepted within 30 days.", "slice": "policy"},
    {"q": "reset password?", "ctx": "Use the 'Forgot password' link.",   "slice": "howto"},
    {"q": "data export?",    "ctx": "Export lives on the Settings page.", "slice": "howto"},
]

if USE_REAL_API:
    import anthropic
    from pydantic import BaseModel
    client = anthropic.Anthropic()
    class G(BaseModel):
        reason: str
        grounded: bool
    def task(c):                                   # 2. TASK (system under test)
        r = client.messages.create(model="claude-opus-4-8", max_tokens=200,
            messages=[{"role": "user", "content": f"{c['ctx']}\n\nQ: {c['q']}"}])
        return next(b.text for b in r.content if b.type == "text")
    def judge(ans, c):                             # 3. SCORER (LLM-as-judge)
        r = client.messages.parse(model="claude-opus-4-8", max_tokens=200,
            messages=[{"role": "user", "content":
                f"Grounded in context? true/false.\nCTX:{c['ctx']}\nANS:{ans}"}],
            output_format=G)
        return float(r.parsed_output.grounded)
else:
    def task(c):       return c["ctx"]             # stub: answer = the context
    def judge(ans, c): return float(c["ctx"] in ans)   # grounded if it quotes ctx

def report(dataset):                               # 4. REPORT (overall + slices)
    rows = [{"slice": c["slice"], "score": judge(task(c), c)} for c in dataset]   # 1. DATASET
    by_slice = {s: mean(r["score"] for r in rows if r["slice"] == s)
                for s in {r["slice"] for r in rows}}
    return {"overall": mean(r["score"] for r in rows), "by_slice": by_slice, "n": len(rows)}

print(report(DATASET))
Worked solution
{'overall': 1.0, 'by_slice': {'policy': 1.0, 'howto': 1.0}, 'n': 3}

With the stub task (answer = context), every answer is trivially grounded, so the framework reports a perfect score — exactly what should happen, and a sanity check that your harness is wired correctly before you plug in a real, fallible model. Flip USE_REAL_API = True and the same four functions now call a real model for the task and a real judge for the scorer; the report code doesn't change at all. That separation — dataset, task, scorer, report as independent parts you can swap — is the entire architecture of professional eval tooling, and you just built it.

You're early, not behind

AI evaluation is a brand-new discipline — the tools are only a few years old, so there are no veterans with a decade of experience to out-compete you. A motivated new grad who can actually build an eval harness (you just did) and talk fluently about slices, LLM-judge bias, and sample sizes is genuinely competitive. The field is wide open and desperate for people — get in now, build in public, and you'll be ahead of engineers twice your age who never learned to measure.

Case study

How Dana got the eval-engineer offer

Dana had no "evaluation engineer" title on her résumé. What she had was one repo: an eval harness over a real, public task — a sliced dataset built from actual data, deterministic scorers plus an LLM judge with position- and verbosity-bias handling, results reported with a sample size and broken out by segment. Her write-up led with a finding: the judge looked 91% accurate overall but only 58% on the hardest slice, and she showed how she caught and fixed it.

In the interview she didn't recite definitions. Handed "evaluate this chatbot," she named dimensions, a sliced dataset, scorers, an offline gate plus online monitoring, and results with an n — then opened her own dashboard. The measured artifact was the interview. One real, validated eval harness beat every candidate who could only talk about evaluation in the abstract. It's the same portfolio move the Career chapter tells you to make.

Running case · Meridian × Remi

The whole arc: Remi's eval stack, end to end — a sliced dataset with an over-sampled refund slice, deterministic + judge scorers with bias controls, human-labeled ground truth, agent-trajectory scoring once it took actions, a red-team suite, a CI gate, and live online monitoring. That's the system you can now draw and defend, stage by stage, in an interview — the same story Dana told to get hired.

Quiz · Chapter 12

  1. The throughline across every eval tool is:
  2. Asked "how do you trust an LLM judge?", the strongest answer leads with:
  3. Asked to evaluate a RAG Q&A system, you should:
  4. In the capstone, flipping USE_REAL_API = True required changing:
  5. Your strongest interview framing, given your background, is:
← Back Continue →

AI Evaluation Engineer — New-Grad Edition · AI Engineer Dojo · aiengineerdojo.com