GenAI Agent Engineering
14 episodes — short audio overviews on genai agent engineering.
The Dev Environment — chapter audio overview
Setting Up Your Agent Development Workspace
The LLM Client — chapter audio overview
Connect to major LLM providers.
Containerizing LLM Applications — chapter audio overview
Build a Docker container for a Python app that calls the Gemini API, then run it locally and push to a registry.
Generators & Iterators — chapter audio overview
Processing Data Streams Efficiently
Functions — chapter audio overview
Write reusable, modular code.
FastAPI Fundamentals — chapter audio overview
Build REST APIs with FastAPI, Pydantic validation, and OpenAPI docs.
Set up Python virtual environments for isolated agent development — lab audio overview
Build an isolated Python virtual environment programmatically, install a pinned package into it, and verify that the package imports only inside the venv while its interpreter reports a prefix separate from the base install.
Implement secure API key management for LLM providers — lab audio overview
Build a key manager that loads LLM provider API keys from environment variables with a secret-file fallback, fails loudly when a required key is missing, redacts keys for safe logging, and uses the loaded key to make an authenticated LLM call.
Async LLM Client Patterns — lab audio overview
Async client patterns: exponential backoff, retry loops, and concurrent batching with asyncio, verified deterministically against a scripted transport. Complete the TODO implementations to pass all tests.
Invoke Provider-Native Extended Thinking and Structured Output — lab audio overview
Build a client that turns on Anthropic extended thinking and separates the thinking trace from the final answer, then request strict JSON output, parse it into a typed weather report, and reject malformed replies.
Structured Text Report Generator — lab audio overview
Build a Python app that renders text from style templates, enforces a word budget, and returns structured, reproducible report responses.
Data Pipelines - Configurable Generator Pipeline with Gemini — lab audio overview
Build a ConfigPipeline that chains generator stages together to source data from Gemini, filter items by predicate, transform data, and collect results through a complete pipeline.
Variable Scope - CounterManager — lab audio overview
Build a CounterManager class that demonstrates local and global variables. Learn how scope affects variable accessibility and when to use the global keyword versus explicit data flow.
Configure OpenAPI documentation with examples — lab audio overview
Rebuild the lab around a real FastAPI app: define Pydantic request/response models with Field(examples=...) and json_schema_extra, attach them via response_model and openapi_extra on actual @app.post/@app.get routes, then have the learner assert that app.openapi()['paths'][...]['requestBody'/'respon