Teaching
Production engineering,
taught as tooling.
I architect and lead the hands-on infrastructure side of Duke's graduate and undergraduate CS courses — where students ship real systems with Docker, CI/CD, and AI agents, rather than hand in slides about them.
Every artifact on this page is open-source and reproducible — labs students actually run, benchmarks they evaluate agents against, and an MCP pipeline that routes Copilot edits through GitLab so AI contributions stay reviewable.
Courses
What I built for these courses — each linked to duke-gta, the open-source repo students pull from on day one.
llm-teammate
MCP · GitHub Copilot · GitLab
An MCP configuration and prompt template that routes GitHub Copilot edits through GitLab merge requests — so AI contributions become reviewable artifacts rather than invisible autocomplete. Students see exactly what their AI teammate proposed, in what context, and can push back.
debugger-benchmark-small
Python · seeded bugs · answer keys
A compact Python gradebook with six intentionally seeded bugs and answer keys. Students write and validate an AI debugging agent against ground-truth — fast iteration, easy reproducibility.
debugger-benchmark-large
pytest substrate · real-world bugs
A real-bug benchmark built on a pinned pytest codebase — four curated real-world bugs with issue briefs and 7 targeted fix tests. Inspired by SWE-bench in spirit but small enough to run in a single seminar lab.
example_ai_agents
FastAPI · Nginx · agent routing
A minimal FastAPI + Nginx agent-routing demo compatible with DukeGPT — the baseline pattern students extend for their own production agent systems in CS 590.
lab_docker
progressive Docker sequence
A progressive lab sequence taking students from first `Dockerfile` to multi-stage builds and compose orchestration — the production muscle memory that's missing from most CS curricula.
lab_pipeline
GitLab CI · Ruff · pytest
A minimal GitLab CI pipeline with Ruff reporting and pytest gating. Students learn what CI actually is — not a box to check, but a continuous feedback loop shaping how they write code.
lab_wasm
WebAssembly runtime
WebAssembly runtime demonstrations — students see how modern server runtimes execute sandboxed, portable binaries, and why WASM matters beyond the browser.
All of it, open-source.
One repo, every artifact reproducible — pull, run, evaluate. No slides, no black boxes.