Capstone — Defenderlo
El cierre: un proyecto que cruza todos los módulos y que podés defender en una design review o entrevista senior.
Outcome: un proyecto que integra los pilares Y que podés defender decisión por decisión.
Checklist “grado senior”
- M0 — doc de necesidad + 1 métrica de producto
- M1 — código idiomático + tests + types + tooling moderno
- M2 — system design documentado (Mermaid) + 1 query optimizada + 1 cache
- M3 — CI/CD (push→prod) + infra en código
- M4 — 1 hueco de seguridad cerrado + threat model + scan de deps
- M5 — OpenTelemetry + dashboard + 1 alerta
- M6 — feature RAG/agente + evals
- M7 — historia git limpia (rebase/squash antes del PR) + API con semántica HTTP correcta
Proyecto ancla (recomendado)
Un solo proyecto bien construido ejercita casi todos los módulos a la vez, en contexto real e integrado — más profundo que hacer un proyecto suelto por módulo del catálogo. Se recomienda como capstone único.
Qué es: un servicio backend AI en Python (FastAPI) que expone una feature LLM productiva (no demo aislada) sobre un dominio propio, con agente, RAG, tests, CI/CD, deploy en cloud, seguridad y observabilidad integrados en un mismo sistema.
Mapeo pieza → módulo:
| Pieza del proyecto | Qué ejercita | Módulo |
|---|---|---|
| Feature LLM con agente (LangGraph): tool calling, structured outputs, validación, retry/fallback | Orquestación de agentes, LLM en producción (no demo) | M6 |
| RAG sobre un corpus propio: chunking, embeddings, retrieval, pgvector sobre Postgres | Retrieval + vector DB integrados al backend | M6 / M2 |
| Arquitectura modular (config/routes/controllers/services/repositories) aplicando SOLID, documentada en un ADR | Diseño de sistemas defendible | M2 |
| Suite pytest (unit + integration + API) + CI/CD en GitHub Actions | Testing serio + pipeline push→prod | M1 / M3 |
| Deploy en cloud (Cloud Run o equivalente) + infra como código | Despliegue reproducible | M3 |
| Observabilidad: OpenTelemetry (logs + métricas + traces) + evals con RAGAS/Langfuse | Ver antes de que falle + medir calidad del LLM | M5 / M6 |
| AuthN/AuthZ, rate limiting, scan de dependencias (bandit/pip-audit) | Seguridad como default, no feature | M4 |
Por qué un proyecto y no varios sueltos: las piezas no viven aisladas — el agente llama tools que consultan el RAG, esa API corre en producción con auth y rate limit, y cuando falla se ve en el dashboard. Esa fricción de integrar (no solo hacer funcionar cada parte por separado) es lo que se evalúa en una design review o entrevista senior. El catálogo de proyectos por módulo sirve para drillear un tema aislado rápido; este proyecto ancla es el que se lleva a portafolio y se defiende.
Resultado: cumple el checklist “grado senior” completo (M0–M7) en un único repo con handbook, y da evidencia concreta para narrativa de entrevista (arquitectura + testing + Python depth) además de cerrar el diferenciador AI/agentic.
Entregable: repo con handbook (Architecture / Conventions / Decisions / Glosario / Workflow / Errors) + write-up “por qué cada decisión” + mock de design review.