05 · AI & LLM Systems

Interview talking points

Presenting your systems impressively and honestly — the Sentinel narrative, pattern vocabulary, the gateway story, ten likely questions with scripted answers, and delivery notes.

The rule for this file: every claim here is grounded in your real, stated facts. The verified fact set you may use in interviews:

  • ~2 years experience; backend/AI engineer; Python/FastAPI, TypeScript/Node, Kubernetes, Kafka; LLM systems in production.
  • Sentinel: GitHub-webhook-driven issue detection → MCP-based production log analysis → LLM-generated fix PRs (100+/month) → adversarial AI reviewer → Telegram human approval gate → ~70% reduction in incident resolution (time/effort).
  • An LLM gateway abstracting providers for production LLM traffic.

If a number isn't in that list, do not say it. "I don't have that number offhand, but the mechanism was X" is always a better answer than an invented metric — interviewers probe numbers, and one caught embellishment poisons everything else.

1The Sentinel narrative — 30-second and 3-minute versions

Narrative rehearsal

  0:00

Hit Start, deliver the version out loud, check your pacing against the target length.

30-second version (the hook):

"I built Sentinel, an agentic incident-response system. GitHub webhooks flag issues, an MCP-based stage pulls and analyzes production logs, an LLM drafts a fix as a pull request — we generate 100+ fix PRs a month — then an adversarial AI reviewer critiques each one before it goes to a human for one-tap approval over Telegram. Nothing merges without a human. It cut our incident-resolution effort by about 70%."

Note the construction: pipeline in one breath, the volume metric, the safety architecture, the human boundary, the outcome. Every interviewer follow-up from here lands on ground you know completely.

3-minute version (the architecture walk): narrate stage by stage, attaching one design decision to each:

  1. Ingestion — GitHub webhooks. Design points: signature verification, fast-ack + async processing, dedupe against redelivery (at-least-once semantics). "The front door is a webhook consumer, so it's built like one: verify, ack fast, process async, idempotent."
  2. Analysis — MCP-based log access. Design points: the log integration is an MCP server, decoupled from agent logic — swappable, independently testable, permission-scoped; the agent queries for relevant context rather than being fed a dump. "Retrieval here is tool-driven, not embed-everything RAG — incident context is fresh and queryable, so the agent fetches exactly what it needs."
  3. Generation — LLM-drafted fix PRs. Design points: output is constrained to a reversible artifact — a PR, never a direct push. The action space is shaped so the worst case is a bad PR, not a bad deploy.
  4. Evaluation — adversarial AI reviewer. Design points: separate pass, fresh context, a charter to find problems — because generators reviewing their own in-context output inherit their own blind spots.
  5. Authority — Telegram human gate. Design points: the gate sits at the irreversibility boundary (merge); the approval surface is designed for low review cost, which is what makes 100+ PRs/month reviewable at all.
  6. Outcome. ~70% reduction in incident-resolution effort — and the honest mechanism: the system compresses the investigate-and-draft phase; humans keep the judgment phase.

2Mapping Sentinel to the named agent patterns

This is your highest-leverage move: you built the thing; the vocabulary (Anthropic's "Building Effective Agents") makes it legible to interviewers. Say the pattern names.

Workflow with agentic steps

The system as a whole — a fixed, staged pipeline (detect → analyze → generate → review → approve) rather than one free-running agent. This is deliberate: fixed stages are debuggable, testable, and fail locally; the open-ended part (log investigation) is confined to the stage that needs autonomy. "I used the least autonomy that solves each stage — full agent loops only where the path genuinely depends on findings."

Orchestrator-with-workers

The pipeline decomposes incident resolution and dispatches specialized stages (analysis, generation, review), then synthesizes into a reviewable artifact. Sentinel is best described as an orchestrated pipeline with an evaluator gate and a human authority boundary — that exact sentence is your thesis statement.

Evaluator–optimizer, made adversarial

Generation followed by a critical evaluation pass is textbook evaluator–optimizer; making the evaluator adversarial (its job is to find reasons to reject) counteracts the sycophancy of self-review.

Prompt chaining with gates

Stage boundaries are checkpoints — deterministic validation between probabilistic steps, so errors fail at a stage instead of cascading through the pipeline. "A pipeline of checked stages degrades gracefully; an unchecked loop compounds errors."

Human-in-the-loop at the irreversibility boundary

Everything up to the merge is reversible (a PR can be closed); the merge is not — so that's where the human sits. Frame gate placement as a principle ("find the last reversible moment"), not a feature.

The humility layer that makes it impressive: volunteer what the design admits — LLM output can't be trusted raw; so trust is manufactured by architecture: constrained action space (PRs only) + adversarial review + human authority. "Reliability is a property of the harness, not the model" — you can say this with receipts.

3Mapping the LLM gateway to LLM-ops concepts

Your gateway is a small system, but it maps onto half the LLM-ops vocabulary — narrate it with the terms:

Adapter/facade pattern

One internal request/response contract; per-provider adapters normalize message formats, tool-call formats, and error taxonomies. Application code is provider-agnostic — a provider swap touches adapters, not features.

Reliability layer

Retries with backoff for 429/5xx/timeouts, honoring rate-limit headers; distinguishing transport failures from semantic failures (malformed/off-schema output → validate-and-reprompt rather than blind retry); fallback routing when a provider degrades.

Central observability choke point

Because all LLM traffic flows through one place, you get uniform logging of model, tokens, latency, and outcomes — cost attribution and debugging live in one seam instead of being scattered per feature.

Policy seam

One place to enforce token budgets, timeouts per call class, and model routing decisions.

Honest scoping: present it as the pattern applied at your scale — "a gateway abstraction over providers, giving us swap-ability, uniform retries/fallbacks, and one seam for observability and budgets." Don't inflate it into a claim of some massive platform; the design reasoning is what's being interviewed, and it's sound at any scale.

4Ten likely AI-engineering interview questions, with strong answers

Question drill

Deal a random question, hold the 10-second think pause (trains the pause-then-answer habit), answer out loud, then reveal the script.

Press "Deal question" to start.

Q1. "Walk me through the most interesting system you've built."

The 3-minute Sentinel walk (§1). End on the thesis sentence: "Architecturally it's an orchestrated pipeline with an evaluator gate and a human authority boundary — the design assumes LLM output can't be trusted raw, and manufactures trust through checking." Then stop and let them pick a stage to drill into — you win every drill-down.

Q2. "How do you stop an LLM system from doing something dangerous?"

"Layered, and mostly not with prompts. In Sentinel: the action space is constrained by construction — the system can only produce PRs, never push or deploy, so the worst case is reversible. The analysis stage's access runs through MCP servers, which gives a permission-scoped, auditable seam. Then an adversarial reviewer screens outputs, and a human approves at the merge — the irreversibility boundary. Prompt-level guardrails exist but I treat them as UX, not security; 'can't' has to live in code and permissions."

Q3. "What is MCP and why did you use it?"

"A standard protocol between LLM apps and integrations — hosts run clients that connect to servers exposing tools, resources, and prompts over JSON-RPC. It solves the M×N integration problem, like LSP did for editors. In Sentinel, production-log analysis goes through MCP: the integration is decoupled from agent logic — independently testable, swappable, permission-scoped — and the host mediates every call, so there's one choke point for auth and audit. In practice it turned a bespoke integration into a reusable, governed component."

Q4. "How do you handle hallucination?"

"By assuming it, not preventing it. Mechanistically, models optimize plausibility, not truth, so I design so hallucination gets caught: ground the model in real data — Sentinel's analysis reads actual production logs via tools rather than relying on recall; constrain outputs to verifiable artifacts — a fix PR can be diffed, reviewed, and tested; then verify downstream — adversarial review plus a human gate. For anything structured, schema validation with a repair loop. The question I ask isn't 'how do I make it never wrong' — it's 'what's the blast radius when it's wrong, and who catches it.'"

Q5. "How do you evaluate/test LLM outputs?"

"Tiered, like a test pyramid for probabilistic outputs. Deterministic checks first — schema validity, does-the-output-meet-contract, and for code, the best grader there is: does it apply and do checks pass. Above that, judged quality on curated cases. Two things I care about specifically: prompts are behavior, so prompt changes get regression-checked like code changes; and production feedback is the best eval source — in Sentinel, every human rejection at the approval gate is a labeled failure case, which is a free, continuously-growing eval set drawn from real traffic."

(Note: describe your eval philosophy in terms of what your system's architecture gives you — the gate-as-labeled-data point is grounded; don't invent specific eval-suite sizes or scores.)

Q6. "Tell me about a failure mode you've dealt with in agentic systems."

Pick from the field guide (file 03 §8) and speak to the mitigation shape your system embodies:

"The failure class I respect most is cascading error — an early wrong conclusion, like misidentifying the faulty component from logs, silently invalidating everything downstream. Unchecked loops compound that. It's the core reason Sentinel is a staged pipeline with checks at stage boundaries rather than one long agent run: errors fail at a stage, visibly, instead of propagating into a confident wrong fix. And the adversarial reviewer exists precisely because generation checking its own work grades generously."

Q7. "Direct vs indirect prompt injection — and does it affect your system?"

"Direct: the attacker is the user, jailbreaking through the chat. Indirect — the one that matters for agents: instructions embedded in content the system reads. My system's threat model is squarely indirect: it ingests GitHub issue text and production logs, both attacker-influenceable — a crafted issue could try to steer the fix generator. There's no reliable prompt-level fix, so the mitigations are architectural: least-privilege access, output constrained to PRs, adversarial review, human approval before merge. That's the 'lethal trifecta' logic — untrusted input plus privileged access is only safe if the action channel is gated, so we gate it."

Q8. "How do you keep LLM costs and latency under control?"

"Structurally. The gateway gives one seam: token accounting per call, budgets and timeouts per call class, retries that respect rate limits, and fallback routing. On the prompt side: context discipline — tool outputs trimmed at the source, stable prompt content ordered first so prefix caching pays, tight output caps since decode is the expensive, serial direction. And Sentinel's work is async pipeline work, which buys freedom — no user is staring at a spinner, so we can trade latency for cost and reliability in ways an interactive product can't."

Q9. "Why did you keep a human in the loop — isn't the goal full autonomy?"

"The goal is resolved incidents, not autonomy. We put the human at the one irreversible step — the merge — and automated the expensive part: investigation and drafting. That division is why the ~70% reduction is real and safe: the system compresses toil; the human keeps judgment and accountability. I'd expand autonomy the boring way — per action-class, earned by track record and evals, never by optimism. And the gate has a second job: every approval or rejection is labeled feedback on system quality."

Q10. "Where does your system fall short? What would you build next?"

Honest self-critique reads senior — and each gap should come with a mechanism:

"A few things I'm clear-eyed about. First, human review capacity is the structural bottleneck — at 100+ PRs a month it works because per-item review cost is low, but scaling volume means triaging: auto-classifying low-risk fix categories for lighter review while keeping full gates on risky ones. Second, evals — I'd invest in a systematic regression suite mined from gate rejections, so prompt and model changes are gated by data rather than judgment. Third, richer verification between generation and review — more execution-based checking, since 'does it run and pass' is the cheapest, most honest grader for code. The theme: the architecture is right; the next wins are in measurement and graduated autonomy."

5Delivery notes — impressive because honest

Own the numbers you have; refuse the ones you don't. You have two: 100+ fix PRs/month, ~70% incident-resolution reduction. Practice one sentence of mechanism for each — "the 70% comes from compressing investigation-and-drafting; humans kept the judgment step" — because "how was that measured / where does it come from" is the standard follow-up, and a mechanism answer is what makes a metric believable. For anything else: "I don't have that number offhand" + the mechanism. Never estimate under pressure.

Scope claims to your seniority honestly. ~2 years + a production agentic system is a strong profile for early-career AI engineering — you don't need inflation. "I built/designed X" for what you did; "we/the team" where it was shared. Interviewers calibrate fast and reward precision.

Lead with design decisions, not features. Every stage of Sentinel exists because of a failure mode: webhooks→idempotency, MCP→decoupling and permissioning, PR-only output→reversibility, adversarial review→self-review bias, human gate→irreversibility boundary. "Feature because failure-mode" is the sentence pattern that sounds like engineering.

Use the shared vocabulary deliberately: workflow-vs-agent, orchestrator–workers, evaluator–optimizer, irreversibility boundary, indirect prompt injection, lethal trifecta, least privilege, prefix caching, LLM-as-judge. Each term you use correctly saves a paragraph of explanation and signals you read the same material the interviewer did.

Have a drill-down ready per stage. The interviewer will pick one. Webhook stage → at-least-once/idempotency story. MCP stage → hosts/clients/servers + tools/resources/prompts. Generation → constrained action space. Review → fresh-context adversarial framing. Gate → approval UX and attention economics. If you can go two levels deep on all five, the interview is yours.

End answers with a handle, not a trail-off. Close each long answer with a one-line thesis ("…so trust comes from the harness, not the model") — it gives the interviewer something to grab and makes you quotable in the debrief.