« All Roles

Agentic AI Engineer — Agent Infrastructure, Platforms & Production Systems

Target Roles: The Staff / Senior / Lead / VP agentic-AI engineering postings collected in jd.md — Citi (Lead Agentic AI Engineer VP; Agentic AI Technical Lead), Docker (Staff SWE, Agentic Platform), Cohere (Senior SWE, Agent Infrastructure), Temporal (Staff SWE, AI Foundations), Juniper Square (Staff SWE, AI), Redcan.ai (Staff SWE, Agentic AI Products), Wolters Kluwer (Senior Full-Stack, AI Platform & Agents), OpenAI (SWE / Security Engineer, Agent Infrastructure/Security), Anthropic (Agent Prompts & Evals / Claude Code), LiveKit (Staff Rust SDK, real-time agents), RBC (Staff Engineer, Agentic AI).

What this track is (and what it is not). This is not "call the OpenAI API and add a chatbot." It is the layer those roles actually hire for: the infrastructure, platform, and production discipline that makes agents reliable, secure, evaluable, multi-tenant, durable, and cheap enough to run at enterprise scale. You will build the mechanisms the frameworks only expose — the agent runtime, the MCP server, the durable workflow engine, the sandbox, the guardrail chain, the eval harness, the multi-tenant gateway — so you can debug them at 2 a.m. and defend them in a Staff/Principal interview.

Relationship to the Senior AI Engineer track. That track goes down the stack — transformer internals, autograd, sampling, quantization, distributed training — the model mechanisms. This track goes up and around the model — the agent and platform mechanisms. They share a spine (the ReAct loop, tool calling, RAG, evaluation appear in both) but the lens is different: there you build the sampler; here you build the runner, the sandbox, the durable workflow, and the tenant boundary that call it. Where a topic is covered at model-depth there, we cross-link and go platform-deep here.

Duration: ~30 weeks core (≈7 months) at one phase/1.5 weeks, extendable with the capstone. Seniority Target: Senior → Staff → Principal / Lead IC — the person who owns the agent platform, makes the reliability/cost/latency/security tradeoff, and is the escalation point when an agent loops, leaks a tool secret, hallucinates a tool call, exfiltrates a customer record, or blows the token budget. Goal: Make you the engineer who can architect a secure, multi-tenant, durable, evaluated agent platform at the system level and debug it at the tool-schema, MCP-message, event-replay, capability-check, injection-vector, judge-calibration, cache-key, quota-bucket, and trace-span level — across the agent runtime, tool integration, retrieval, orchestration, durability, sandboxing, security, evaluation, serving, tenancy, and observability.


Why This Curriculum Exists

Every JD in jd.md is a variation on one sentence: "build the platform that runs agents reliably in production." Read them together and the same words recur — agent infrastructure, agentic platform, MCP, tool calling, context engineering, ReAct/ReWOO, GraphRAG/LightRAG/RAPTOR, multi-agent, durable execution, sandboxing, secure execution, LLM-as-judge, golden datasets, behavioral regression, guardrails, multi-tenant, observability, cost/latency optimization, human-in-the-loop. None of those are "prompt engineering." They are distributed-systems, security, and evaluation problems that happen to have an LLM in the loop.

The discipline rests on five load-bearing truths this track hammers in every phase:

  1. The model proposes, the application executes. The LLM is a stochastic oracle that emits text. It never runs a tool, moves money, or reads a file — your code does, after validating. Every security, reliability, and correctness property lives on your side of that trust boundary. (Phases 02, 03, 09, 10, 13.)
  2. Reliability compounds multiplicatively. A 95%-reliable step, ten steps deep, is \(0.95^{10} \approx 0.60\). Agents are loops over an unreliable oracle, so the whole craft is constraining and verifying that oracle: typed tools, validation, retries, critics, evals, human gates. "Least-agentic that works" is a design principle, not laziness. (Phases 00, 01, 07, 11.)
  3. Untrusted text becomes instruction. An LLM mixes instructions and data in one channel and cannot reliably tell them apart, so any text it reads — a web page, a tool result, a document, its own memory — can become a command. Prompt injection has no general fix; it is contained architecturally (least privilege, allow-lists, output scanning, human approval), never prompted away. (Phase 10, threaded everywhere.)
  4. Every request costs money and time, and both are engineered, not observed. Tokens, cache hits, model routing, latency budgets, quotas — margin is built. You instrument cost and latency on day one or you find out from the invoice. (Phases 00, 14.)
  5. An agent you cannot evaluate, you cannot ship. "It worked in the demo" is a sample of one from a distribution. Golden datasets, trajectory evals, LLM-as-judge, behavioral regression tests, and evals-as-CI-gates are the difference between a demo and a platform. (Phase 11, threaded everywhere.)

So this track is built on two non-negotiables:

  1. Every mechanism in the JDs gets implemented, not just described — the ReAct/ReWOO runner, the JSON-Schema tool validator and repair loop, the MCP JSON-RPC 2.0 server and client, the context assembler and intent router, the hybrid retriever with RRF and reranking, the RAPTOR tree and mini-GraphRAG, the multi-agent message bus and critic loop, the event-sourced replay-safe workflow engine with a human-approval signal, the capability-gated sandbox, the layered injection guardrail chain, the golden-dataset + trajectory + LLM-judge eval harness with a regression gate, the async streaming agent service, the multi-tenant authz/isolation/quota gateway, the model-router + semantic-cache + cost-meter + OTel tracer, and the spec→plan→apply-patch coding loop. You build a working, tested miniature of each (see LAB-STANDARD.md).
  2. Everything is taught to the depth interviews and incidents demand — why an agent loop is not replay-safe but a durable workflow is; the exact JSON-RPC handshake MCP does at initialize; why 0.95^10 ≈ 0.60 decides your architecture; the difference between ReAct's interleaving and ReWOO's plan-then-execute token economics; how RAPTOR's recursive clustering answers a question BM25 can't; why a shared vector index is the #1 multi-tenant leak channel; how an indirect prompt injection in a fetched web page exfiltrates a secret via a markdown image URL; why LLM-as-judge needs a human-agreement (Cohen's κ) check before you trust it in CI.

How Each Phase Teaches (the "many ways of explaining")

DocumentVoiceWhat it gives you
README.mdthe syllabuswhy the phase exists, concept map, lab specs, integrated-scenario ideas, deliverables checklist, key takeaways, and which JD(s) it answers
WARMUP.mdthe professorzero-to-staff primer — every term from first principles, the mechanism under the hood, the math/diagrams, lab guidance, success criteria, interview Q&A, references
HITCHHIKERS-GUIDE.mdthe senior who's been therethe compressed practitioner tour — 30-second mental model, the numbers to tattoo on your arm, the framework one-liners, war stories, beginner mistakes
DEEP-DIVE.mdthe core contributorthe technical internals & mechanism — data structures, algorithms, invariants, complexity, and a worked trace of how it actually runs
PRINCIPAL-DEEP-DIVE.mdthe principal engineerthe system-design & architecture view — tradeoffs, scaling & performance envelope, failure modes & blast radius, and the "looks wrong but intentional" calls
CORE-CONTRIBUTOR.mdthe maintainerhow the real system/framework implements this under the hood — the non-obvious source-level decisions, API evolution, gotchas, and what our miniature simplifies
STAFF-NOTES.mdthe staff engineerjudgment & seniority signal — own-vs-use, a real when-to-reach-for-it decision framework, code-review red flags, war stories, and the interview signal
lab-*/the lab bencha runnable, test-verified implementation: lab.py (TODOs) → your code → solution.py (reference) → test_lab.py (the proof). Validation is pytest.

The lab engineering standard is in LAB-STANDARD.md. Read it before Lab 01.


The Phases

#PhaseYou build (flagship lab)JD competency it answers
00The Agentic Engineer's Mental Model: Trust Boundaries, Reliability & Cost Mathan agent reliability + cost + latency calculator and a workflow-vs-agent decision resolver (0.95^n, tokens/turn, $/task, p95 budget)the design-review arithmetic behind every JD; "least-agentic that works"
01The Agent Loop From Scratch: ReAct, ReWOO & Plan-Execute-Replana multi-mode agent runtime (ReAct interleaved / ReWOO plan-then-execute / plan-execute-replan) with an injected policy, trace, and step budgetCiti ReAct/ReWOO; agent orchestration; reasoning loops
02Tool Calling & Structured Output: JSON Schema, Validation & the Repair Loopa tool-calling engine — JSON-Schema validation, typed dispatch, errors-as-observations, and a schema-guided repair looptool calling; structured output; function calling (all JDs)
03Model Context Protocol (MCP): Build a Server & Client From Scratcha working MCP server + client over stdio — JSON-RPC 2.0, initialize/capabilities, tools/resources/prompts, permission gating, notificationsDocker & Citi MCP servers; Anthropic; clean integration boundaries
04Context Engineering: Prompt Assembly, Memory & Intent Routinga context assembler (budgeted prompt packing) + intent router/classifier (avoid workflow collisions) + tiered memoryCiti context/prompt/intent engineering; context management
05Retrieval Foundations: Chunking, Embeddings, Hybrid Search & Rerankinga hybrid retriever — chunker + hashing embedder + a from-scratch ANN + BM25 + RRF fusion + cross-encoder rerank + recall@k evalRAG; pgvector/Pinecone/Weaviate/FAISS/Chroma; semantic search
06Advanced Retrieval: GraphRAG, LightRAG & RAPTORa RAPTOR recursive-summary tree + a mini-GraphRAG (entity/relation graph + community summaries) over a graph storeCiti GraphRAG/LightRAG/RAPTOR/Neo4j/pgvector
07Multi-Agent Orchestration: Roles, Message Bus & Coordinationa multi-agent orchestrator — supervisor/worker/critic roles, a message bus/blackboard, typed handoffs, and a critique-revise consensus loopCiti/RBC multi-agent systems; AutoGen/CrewAI/LangGraph/ADK
08Durable Agent Execution: Workflows, Retries & Crash-Safety (Temporal-class)a replay-safe workflow engine — event sourcing, deterministic replay, retries w/ backoff, idempotency, and a human-approval signal / pause-resumeTemporal durable execution; long-running agents; HITL
09Agent Runtime & Secure Execution: Sandboxing, Capabilities & Resource Limitsa capability-gated sandbox executor — policy-enforced fs/net/tool capabilities, resource/step limits, egress control (a pure-Python model of a container jail)Docker secure execution/sandboxing/containers; agent runtime
10Agent Security: Prompt Injection, Threat Modeling & Guardrailsa red-team + guardrail harness — direct/indirect/memory injection attacks vs a layered defense (input guard, allow-list, exfil scan, HITL gate); before/afterOpenAI Agent Security; Docker; OWASP LLM Top 10; secure AI
11Agent Evaluation: LLM-as-Judge, Golden Datasets & Behavioral Regressionan agent eval harness — task-success + trajectory eval + LLM-judge stand-in (bias/κ) + behavioral regression gate over a golden datasetDocker/Juniper/Wolters/Anthropic evals; LLM-as-judge; golden datasets
12Production Agent Services: FastAPI, Async, Streaming, State & Eventsan async agent service — streaming (SSE), an event bus / pub-sub, idempotency keys, and a state/cache layer, with a stdlib fallbackCiti/Docker FastAPI/asyncio/event-driven/microservices/pub-sub/cache
13Secure Multi-Tenant Platform: AuthN/Z, Isolation, Secrets & Quotasa multi-tenant agent gateway — OAuth-shaped authz, RBAC, tenant-scoped isolation (the AI leak channels), per-tenant vector namespaces, secret custody, token-bucket quotasCiti multi-tenant; OpenAI secure APIs/OAuth/authz/encryption
14Cost, Latency & Observability: Caching, Routing, Tracing & Meteringan agent gateway — model router/cascade, semantic + prefix cache, a cost meter, OTel-style trace spans, and a degradation ladderCohere/Citi cost/latency/caching/observability optimization
15AI-Native SDLC: Spec-Driven Development, Reusable Commands & Coding Agentsa coding-agent harness — spec → plan → apply-patch → verify loop over a tiny repo, with a reusable-command/skill registryTemporal/Anthropic agentic coding (Claude Code/Codex); AI-native SDLC
16Real-Time & Voice Agents (LiveKit-class)a voice-agent turn-taking state machine — VAD/endpointing, barge-in, and a streaming STT→LLM→TTS pipeline sim under a latency budgetLiveKit real-time/voice agents; streaming; latency
17Capstone: An Enterprise Agentic Platform, End to Endan integration capstone that composes P01–P14 into one scored, secure, durable, multi-tenant, evaluated, observed agent platformthe whole stack; the Staff/Principal system-design interview

Part II — Frameworks Deep Dive (Phases 18–24)

Phases 00–17 build the mechanisms framework-agnostically. Part II turns to the real frameworks a principal engineer is expected to know cold, and studies each by building a faithful miniature of its execution model plus a principal-depth guide to the real API, gotchas, and when to choose it. Every framework named in jd.md (Citi's LangGraph/CrewAI/AutoGen/Google ADK; Temporal's OpenAI Agents SDK/Pydantic AI) — plus AWS's AgentCore and the Amazon Bedrock platform under it — gets its own phase with multiple labs.

#FrameworkLabs you buildWhy it matters
18LangGraphStateGraph (Pregel/BSP) engine · persistence & checkpointing · human-in-the-loop interruptsthe most-used low-level agent orchestration framework; Citi names it
19CrewAIsequential crew engine · hierarchical (manager) process · Flows (@start/@listen/@router)high-level role/crew multi-agent; Citi names it
20AWS Bedrock AgentCoreruntime & session isolation · Gateway + Policy (Cedar) · Memory strategiesthe framework-agnostic AWS operational layer (runtime/memory/gateway/identity/observability)
21OpenAI Agents SDKAgent + Runner loop + tools · handoffs · guardrails & sessionslightweight agents/handoffs/guardrails; Temporal names it
22Google ADKLlmAgent + tools + Runner/Events · workflow agents (Sequential/Parallel/Loop) · sessions/state/callbackscode-first, deterministic-workflow + LLM agents; Citi names it
23AutoGen & Microsoft Agent FrameworkAutoGen GroupChat · MSAF graph Workflows · orchestration patternsthe AutoGen + Semantic Kernel successor; Citi names AutoGen
24Amazon Bedrock (the FM platform)unified invocation & capacity (Converse · on-demand/provisioned/batch) · Guardrails policy engine · Knowledge Bases (managed RAG)the managed foundation-model platform under AgentCore — model catalog, capacity math, content-safety guardrails, managed RAG; Bedrock vs AgentCore vs Agents-for-Bedrock + competitor decision framework (Azure AI Foundry, Vertex AI, Databricks, OpenAI, inference clouds)

Part III — Cloud AI Platforms, MLOps & Production Infrastructure (Phases 25–28)

The AI/ML-Engineer and OKE-SRE JDs ask for the production plane around the model: managed cloud AI platforms, MLOps discipline, data/feature engineering at scale, and Kubernetes-native operations. Each phase builds a faithful stdlib miniature of the real system plus the four principal-depth docs.

#AreaLabs you buildWhy it matters
25Managed Cloud AI Platformstraining jobs + HPO + registry · real-time/batch endpoints + deployment safety · ML-pipeline DAG engineSageMaker / Vertex AI / Azure ML — the managed train→register→deploy loop every cloud JD names
26MLOpsexperiment tracking · model registry + CI promotion gate · drift detection + retraining triggerMLflow/W&B-class tracking, registry, CI/CD & drift monitoring — the JD's "MLOps best practices"
27Data & Feature Engineering at Scalefeature store (point-in-time joins) · Beam/Dataflow engine · warehouse-native MLfeature stores, Dataflow, BigQuery ML, Databricks — the data-engineering half of the AI/ML JD
28Kubernetes & Cloud-Native AI Infra (SRE)reconciliation control loop · CI/CD gates + image scanning + signing · observability/SLOs/alertingOKE/K8s ops, autoscaling, GitOps, Prometheus/Grafana, error budgets — the OKE MLOps-SRE JD

Part IV — GenAI Frameworks & ML Foundations (Phases 29–32)

#AreaLabs you buildWhy it matters
29LangChain (Core)LCEL & the Runnable protocol · RAG chain · the classic AgentExecutorLCEL/chains/retrievers/agents; the JD's LangChain line; the LangChain-vs-LangGraph decision
30Hugging Facepipeline() abstraction · BPE tokenizer + generate() · PEFT/LoRA + the HubTransformers/pipelines/Hub/PEFT; the JD's Hugging Face line
31Cohere PlatformRerank cross-encoder · grounded generation + inline citations · Embed + two-stage RAGCommand/Embed/Rerank + North grounded RAG; the Cohere Forward-Deployed Engineer JD
32ML & Deep Learning Foundationssupervised training loop · k-means + PCA · tabular RL (Q-learning + bandits)TensorFlow/PyTorch, supervised/unsupervised/RL & tuning — the ML fundamentals every AI/ML JD assumes

Part V — Eval-Driven Development (Phase 33)

#AreaLabs you buildWhy it matters
33Eval-Driven Development (EDD)EDD harness (graders, pass@k, regression gate) · SWE-bench-miniature (execution-graded coding evals) · error-analysis flywheel + eval-gated deliverybuilding agentic systems for software delivery evals-first; the Cohere "robust evaluation frameworks, well beyond trial and error" line; complements Phase 11 (eval mechanisms) & Phase 15 (coding-agent harness)

Use the sidebar for the full clickable table of contents, and see GLOSSARY.md / CHEATSHEET.md for the running references. interview-prep/ has per-company drills; system-design/ has full platform-design walkthroughs.


How to Use This Track

  1. Read Phase 00 end to end first — it builds the mental model (the trust boundary, the 0.95^n reliability math, the cost/latency dials, "least-agentic that works") that every later phase plugs into.
  2. For each phase: read WARMUP.md (professor), skim HITCHHIKERS-GUIDE.md (the numbers), do the lab (lab.py red → green against test_lab.py), then read the four principal deep-dives — DEEP-DIVE.md (mechanism), PRINCIPAL-DEEP-DIVE.md (architecture), CORE-CONTRIBUTOR.md (how the real system does it), and STAFF-NOTES.md (judgment & interview signal).
  3. Work phases roughly in order — the loop (P01), tools (P02), and MCP (P03) underpin everything; orchestration (P07) assumes the loop; the capstone (P17) assumes P01–P14.
  4. Use interview-prep/ and system-design/ as running references; map each company in jd.md to its heaviest phases (Citi → 03/04/06/07/13; Docker → 03/09/10/11; Temporal → 08/15; OpenAI Security → 09/10/13).

Cross-Cutting Themes (the agentic platform engineer's lenses)

  • The trust boundary is the product. Model proposes, app executes. Every phase either sits on your side of that line (validation, sandbox, authz, guardrail) or defines where the line is. Draw it wrong and the injection/exfil/privilege bug is unavoidable no matter the prompt.
  • Reliability is a budget you spend, not a hope. 0.95^n says how many autonomous steps you can afford before you must checkpoint, verify, or ask a human. Durable execution (P08), evals (P11), and multi-agent critics (P07) all exist to buy steps back.
  • Context is finite and expensive. The window is a budget; retrieval (P05/06), memory and compression (P04), and caching (P14) all fight the same scarcity. "Put more in the prompt" is a cost and a latency decision, and past some point a quality regression (lost-in-the-middle).
  • Agents are distributed systems. Retries, idempotency, at-least-once vs exactly-once, event sourcing, backpressure, quotas, tenancy, tracing — the agent parts are new, the systems parts are the ones that page you. P08/P12/P13/P14 are systems phases with an LLM inside.
  • Every claim maps to a number. 0.95^10, $/resolved-task, recall@k, p50/p95/p99, tokens/turn, cache-hit-rate, κ agreement, quota buckets. You do this arithmetic before the design review, not after the incident. Every phase ends with a number you can defend.
  • Security is architectural, not promptable. You cannot instruct a model into being safe. Least privilege, allow-lists, sandboxing, output scanning, human-in-the-loop, and tenant isolation are code. Prompting is a mitigation, never a control.