01
| Área | Tema Específico | Objetivo | Dif. | Recursos | Proyecto / Validación | Criterio de Éxito |
|---|---|---|---|---|---|---|
| Sintaxis Core |
Variables, tipos mutables vs inmutables y model de memoria
int · float · str · bool · None · identity vs equality ·
is vs == · reference counting · interning |
Entender cómo Python gestiona objetos en memoria para predecir el comportamiento del código y evitar bugs silenciosos por referencias compartidas. | Fácil | Predecir correctamente el output de 15 snippets con mutación de listas, referencias compartidas y comparaciones de identidad. Explicar cada resultado. | Python15/15 predicciones correctas; explicación del modelo de memoria con id() como evidencia; diferencia entre copy() y deepcopy() demostrada. |
|
| Sintaxis Core |
Funciones: scope LEGB, *args/**kwargs, closures y decoradores
Scope LEGB · funciones como ciudadanos de primera clase ·
functools.wraps · decoradores con parámetrosVariables y tipos
|
Comprender cómo Python resuelve nombres y cómo las funciones capturan estado externo — fundamento de decoradores, middleware y cualquier patrón de orden superior. | Fácil | Implementar un decorador de logging y un decorador de retry con backoff exponencial, ambos sin librerías externas, funcionando con cualquier firma de función. | PythonDecoradores usan functools.wraps; preservan __name__ y __doc__; retry funciona con *args/**kwargs arbitrarios; testeable en aislamiento. |
|
| Estructuras de Datos |
list, dict, set, tuple: complejidad O(n) y cuándo usar cada uno
Hash tables · acceso O(1) vs O(n) · comprensiones · generadores ·
collections: deque, Counter, defaultdictVariables y tipos
|
Seleccionar la estructura de datos correcta basándose en el patrón de acceso y la complejidad temporal — decisión que define el rendimiento de cualquier servicio bajo carga. | Fácil | Procesar un CSV de 500k filas con generadores sin cargarlo en memoria. Analizar logs de acceso calculando top-10 IPs y sliding window de errores con Counter y deque. |
PythonUso de memoria constante O(1) en el procesamiento del CSV; top-10 IPs con Counter.most_common(); no usa sorted() innecesariamente sobre dicts. |
|
| OOP |
Clases, herencia, MRO y dunder methods esenciales
__init__ · @property · @classmethod · @staticmethod · __str__ · __repr__ · __eq__ · __hash__ · MRO · composición vs herenciaFunciones y closures
|
Modelar entidades del dominio con encapsulamiento adecuado y objetos que se integren naturalmente con las estructuras de datos nativas de Python. | Medio | Diseñar clase Money(amount, currency) usable en set(), comparable con ==, con repr() reproducible. Luego un sistema de facturación con Product, Cart, Invoice. |
PythonMoney funciona en set() y como clave de dict; lógica de negocio encapsulada; sin más de 2 niveles de herencia; comportamiento compartido como mixins. |
|
| Calidad de Código |
PEP 8, type hints completos, ruff y mypy
Anotaciones de tipos ·
mypy --strict · docstrings estilo Google · ruff como linter/formatter · typing: Optional, Union, TypeVar, ProtocolOOP + estructuras de datos
|
Escribir código que un colaborador entienda sin explicación verbal, que las herramientas puedan analizar estáticamente y que permita refactorizaciones seguras a gran escala. | Fácil | Pasar ruff check . y mypy --strict . sin errores en un proyecto de 500+ líneas. Todas las funciones públicas con type hints, docstrings y validación de contratos con Protocol. |
Python0 errores ruff ni mypy; todas las funciones públicas con type hints y docstring; Protocol usado al menos una vez como interfaz de dependencia. |
|
| Manejo de Errores |
Excepciones: jerarquía, custom exceptions y manejo explícito
try/except/else/finally · nunca except Exception genérico · excepciones de dominio · context managers con __enter__/__exit__OOP (clases y dunder methods)
|
Gestionar fallos de forma explícita con excepciones de dominio que comuniquen contexto de negocio, evitando los patrones que silencian errores reales. | Fácil | Librería CLI de procesamiento de archivos con excepciones propias: FileFormatError, DataValidationError; context manager personalizado que garantiza limpieza de recursos. |
PythonSin except Exception genérico; cada excepción captura sólo lo que puede manejar; context manager probado con pytest verificando limpieza ante excepción. |
|
| HTTP y APIs |
Protocolo HTTP: métodos, status codes, headers y REST
GET/POST/PUT/PATCH/DELETE · 2xx/4xx/5xx · Content-Type · Authorization · idempotencia · HATEOAS · OpenAPI 3.1 conceptos
Manejo de errores + estructuras de datos (JSON)
|
Entender la comunicación cliente-servidor con la profundidad necesaria para diseñar APIs correctas desde el primer endpoint — fundamento de todo lo que viene después. | Fácil | Cliente CLI con httpx que consuma la API pública de MercadoLibre: buscar productos, filtrar por precio, manejar paginación, 429 con retry y exportar top-20 en JSON. |
PythonRetry automático con backoff ante 429; nunca ignora el status code; paginación completa hasta agotar resultados; output JSON reproducible. | |
| Git |
Git workflow: commits semánticos, branching y rebase interactivo
Conventional Commits · feature branches · merge vs rebase ·
git rebase -i · resolución de conflictos · git bisectCalidad de código (proyecto base)
|
Colaborar en equipos con un historial limpio, rastreable y reversible — habilidad que distingue a ingenieros que trabajan en solitario de los que amplifican a su equipo. | Fácil | Mantener un proyecto de 4 semanas con +20 commits semánticos, 3 feature branches, 1 rebase interactivo documentado y resolución de 1 conflicto de merge explicado. | Historial lineal y legible; commits atómicos tipo feat(auth): add JWT validation; ningún commit con mensaje "fix" genérico o "wip" sin rebase previo. |
|
| I/O y Entorno |
Entornos virtuales, gestión de dependencias y packaging moderno
venv · uv · pyproject.toml · hatch · semver · lockfiles ·
pathlib · csv/json modules · encoding UTF-8/Latin-1Calidad de código + HTTP (proyecto práctico)
|
Empaquetar y aislar proyectos Python de forma reproducible para que cualquier colaborador replique el entorno exacto en un solo comando, sin "en mi máquina funciona". | Fácil | ETL script: leer CSVs de múltiples carpetas con pathlib, transformar y exportar JSON con manejo de encoding. Proyecto con uv + pyproject.toml instalable en un comando. |
PythonUsa pathlib.Path, no os.path; cierra archivos siempre con context managers; uv install reproduce el entorno idéntico en una VM limpia. |
|
| Algoritmos |
Algoritmos esenciales y complejidad Big-O aplicada
Búsqueda binaria · ordenamiento · BFS/DFS · hashing · two pointers · sliding window · análisis de complejidad temporal y espacial
Estructuras de datos (complejidad O)
|
Resolver problemas de lógica bajo restricciones de tiempo con la solución óptima — destreza que diferencia al ingeniero que escala servicios del que los degrada. | Medio | Resolver 30 problemas LeetCode (Easy/Medium) usando la estructura de datos óptima. Documentar Big-O temporal y espacial de cada solución con justificación. | Python30 problemas con complejidad óptima demostrada; justificación escrita de por qué se elige dict vs set vs list en cada caso; sin fuerza bruta en problemas que admiten solución lineal. |
02
| Área | Tema Específico | Objetivo | Dif. | Recursos | Proyecto / Validación | Criterio de Éxito |
|---|---|---|---|---|---|---|
| FastAPI |
FastAPI: routers, path/query params, request body y OpenAPI
APIRouter ·
response_model · status_code · tags · versioning con prefijos · OpenAPI 3.1 auto-generadoHTTP + REST (Trainee) + OOP
|
Estructurar una API en módulos con separación de responsabilidades desde el primer commit, generando documentación OpenAPI navegable automáticamente. | Medio | API de e-commerce con módulos products, orders, users — cada uno con su router y OpenAPI tags. Swagger UI navegable con todos los endpoints documentados. |
PythonSwagger UI completo y navegable; sin lógica de negocio en routers; cada endpoint con response_model y status_code explícitos; versionado con prefijo /api/v1. |
|
| Pydantic v2 |
Pydantic v2: BaseModel, validators, Settings y serialización
@field_validator · @model_validator · model_config · alias · SecretStr · pydantic-settings para env varsFastAPI (integración directa) + OOP (herencia de BaseModel)
|
Garantizar integridad de datos en el borde de la API con validaciones expresivas y separar la configuración del código para deploys seguros en múltiples entornos (12-factor). | Medio | Esquemas para sistema de pagos: CreatePaymentRequest con validación cruzada de moneda/monto/tarjeta. Settings tipados que cargan de .env en dev y env vars en prod sin cambiar código. |
PythonErrores de validación con loc y msg claros; cero strings hardcodeadas para config; secrets manejados como SecretStr; sin validación manual en endpoints. |
|
| FastAPI Avanzado |
Dependency Injection: Depends() y lifespan events
Depends() · async with lifespan(app) · DB session per request · cliente HTTP reutilizable · yields en dependenciasFastAPI básico + Pydantic Settings
|
Manejar recursos compartidos (conexiones a DB, HTTP clients) de forma eficiente y sin fugas, garantizando que cada request recibe y libera sus recursos correctamente. | Medio | Dependency que provee sesión de DB por request y la cierra al terminar; cliente httpx.AsyncClient reutilizado via lifespan; sin session leaks verificado con logging SQL. |
PythonSin session leaks bajo carga; async with lifespan(app) para inicialización global; dependencias testeables en aislamiento con override en pytest. |
|
| PostgreSQL |
PostgreSQL: DDL, DML, JOINs, índices y EXPLAIN ANALYZE
PRIMARY KEY · FOREIGN KEY · UNIQUE · índices B-tree · INNER/LEFT JOIN · GROUP BY · window functions ·
EXPLAIN ANALYZEEstructuras de datos (modelos relacionales) + HTTP (API que persiste datos)
|
Diseñar esquemas en 3NF que garanticen integridad a nivel de base de datos y escribir consultas eficientes con diagnóstico del plan de ejecución antes de llegar a producción. | Medio | Esquema e-commerce en 3NF: usuarios, productos, categorías, órdenes, ítems. Report de top-10 productos del mes con window function; EXPLAIN ANALYZE sin Seq Scan en tablas >10k filas. | PythonConstraints a nivel DB; FK con ON DELETE CASCADE donde corresponde; query del report < 200ms en dataset de prueba; EXPLAIN ANALYZE como evidencia adjunta. | |
| SQLAlchemy 2.0 |
SQLAlchemy 2.0: modelos declarativos, relaciones y AsyncSession
Mapped[] · relationship() · lazy/eager loading · selectin · N+1 query problem · Alembic migrationsPostgreSQL + FastAPI DI (AsyncSession via Depends)
|
Mapear el dominio a tablas relacionales evitando el N+1 query problem desde el diseño, con migraciones que evolucionen el esquema sin downtime. | Medio | ORM completo para e-commerce con relaciones; 0 queries N+1 verificados con logging SQL; 5 migraciones Alembic incluyendo una con data migration; downgrade exitoso en todas. | PythonCarga con selectin en endpoints de listado; sin lazy="select"; cada migración probada con upgrade+downgrade en entorno limpio antes de merge. |
|
| Testing |
Pytest: fixtures, parametrize, conftest y cobertura
scope de fixtures · factories con Faker ·
pytest-cov · @pytest.mark.parametrize · integración con FastAPI TestClientFastAPI + SQLAlchemy (lo que se testea) + Manejo de errores
|
Construir una suite de pruebas que documente el comportamiento esperado y detecte regresiones automáticamente — el contrato vivo del servicio con sus consumidores. | Medio | Suite de +50 tests para la API de e-commerce; cobertura >80%; factories con Faker; tests completamente aislados entre sí sin orden de ejecución implícito. | PythonTests aislados; cobertura verificada con pytest-cov; Faker genera datos realistas; cada test sigue patrón Arrange-Act-Assert explícitamente. |
|
| Testing |
Mocking: unittest.mock, pytest-mock y AsyncMock
patch() · MagicMock · AsyncMock · side_effect · httpx mock transports · test doublesPytest (suite de tests base)
|
Aislar unidades de código de sus dependencias externas para probarlas de forma determinista, rápida y sin costos de red ni bases de datos. | Medio | Tests unitarios para un servicio de notificaciones que mockea SMTP y API de SMS; suite completa ejecuta en < 2s; 0 llamadas a servicios externos en los unit tests. | PythonTests ejecutan en < 2s; 0 llamadas externas verificado con assert_called_once_with; side_effect simula errores de red para paths de error. |
|
| Auth |
JWT: generación, validación, refresh tokens y revocación
PyJWT · RS256 vs HS256 · payload design · TTL · refresh token rotation · revocación en Redis ·
python-joseFastAPI DI + Pydantic Settings (secretos) + HTTP (headers de auth)
|
Implementar autenticación stateless sin comprometer la seguridad, con rotación de refresh tokens y capacidad de revocación inmediata ante compromiso. | Medio | Sistema auth completo: registro, login, refresh token rotation, logout con revocación en Redis. Access token 15min TTL; refresh token en cookie httpOnly con SameSite=Strict. | PythonAccess token RS256; refresh rotation funcional; revocación inmediata verificada con test; sin tokens en localStorage; cookie con flags de seguridad correctos. | |
| Observabilidad |
Logging estructurado con structlog y correlation IDs
JSON logs ·
request_id por request · niveles y handlers · structlog · logs legibles en dev, JSON en prod · middleware de correlaciónFastAPI (middleware) + Manejo de errores + Pydantic Settings (entorno)
|
Producir logs que un sistema de observabilidad pueda indexar, buscar y correlacionar — fundamento para poder diagnosticar fallos en producción sin acceso al servidor. | Fácil | Middleware FastAPI que inyecta request_id en cada log del request; JSON en producción, human-readable en dev; todos los logs de un request comparten el mismo ID. |
PythonTodos los logs del mismo request con request_id correlacionable; sin print() en el código; nivel de log configurable por env var sin cambiar código. |
|
| Docker |
Docker: multi-stage builds, imagen mínima y Docker Compose
Builder + runtime layers · imagen <150MB · non-root user ·
healthcheck · Compose con DB + cache + healthchecks · .dockerignoreI/O y entorno (packaging) + pydantic-settings (env vars en contenedores)
|
Empaquetar la aplicación en imágenes reproducibles y seguras; levantar el stack local completo en un comando para onboarding de equipo en < 5 minutos. | Medio | Imagen multi-stage para FastAPI <150MB; usuario no-root; Compose con app + PostgreSQL + Redis y healthchecks; API sólo arranca cuando DB pasa healthcheck; datos persisten entre reinicios. | PythonImagen <150MB; 0 vulnerabilidades críticas con docker scout; depends_on con condición de healthcheck; setup < 2 min desde cero en máquina limpia. |
03
| Área | Tema Específico | Objetivo | Dif. | Recursos | Proyecto / Validación | Criterio de Éxito |
|---|---|---|---|---|---|---|
| Async / Concurrencia |
asyncio: event loop, coroutines, tasks, gather y Semaphore
asyncio.create_task() · asyncio.gather() · asyncio.timeout() · Semaphore · Queue · backpressure · async generatorsFastAPI async (Junior) + manejo de errores (timeout handling)
|
Diseñar servicios que manejen miles de conexiones I/O concurrentes sin bloquear el event loop, controlando el flujo para evitar saturación de recursos downstream. | Difícil | Agregador de noticias que consulta 100 fuentes RSS simultáneamente con Semaphore(20) para no saturar la red, timeout por fuente y memoria estable bajo carga sostenida de 60s. |
PythonTiempo total ≈ max(fuente más lenta) + overhead; sin deadlocks bajo load test; memoria estable; asyncio.timeout() por fuente individual. |
|
| HTTP Async |
httpx AsyncClient: connection pooling, retry y circuit breaker
AsyncClient reutilizable · backoff exponencial con tenacity · circuit breaker con pybreaker · timeout adaptativo · fail-fastasyncio + FastAPI DI (lifespan para el cliente) + manejo de errores
|
Construir clientes HTTP asíncronos para comunicación inter-servicio resilientes ante fallos transitorios que no bloqueen el event loop ni propaguen fallos en cascada. | Difícil | Clase ServiceClient con retry exponencial configurable, timeout adaptativo y circuit breaker; falla rápido cuando el servicio upstream está caído; tests con httpx MockTransport. |
PythonCircuit breaker se abre tras 5 fallos consecutivos; upstream caído retorna fallback en < 500ms; 0 llamadas reales en tests gracias a MockTransport. | |
| Redis Avanzado |
Redis: estrategias de caché, pub/sub, streams y distributed locks
Cache-aside · write-through · cache stampede prevention · TTL patterns · sliding window rate limiter · XADD/XREAD · Redlock
Auth (tokens en Redis) + asyncio (async Redis client)
|
Usar Redis como plataforma de mensajería, coordinación y caché avanzada — reducir latencia P95 en >60% en rutas populares y garantizar coordinación distribuida correcta. | Medio | Rate limiter por usuario con sliding window counter en Redis; distributed lock que evita procesamiento duplicado; caché hit ratio >80% medido bajo escenario realista con Locust. | PythonRate limit exacto bajo 100 req simultáneos; lock libera siempre incluso ante crash del proceso; cache hit ratio >80% verificado con métricas de Redis. | |
| Background Jobs |
Celery: task definition, routing, retry y Celery Beat
@shared_task · bind=True · max_retries · ETA/countdown · crontab · Flower dashboard · worker concurrencyRedis (broker) + asyncio concepts (entender diferencias) + logging estructurado
|
Desacoplar tareas pesadas del ciclo HTTP para mantener tiempos de respuesta <200ms en la API, con orquestación de trabajos programados y visibilidad operativa en tiempo real. | Difícil | Sistema de reportes PDF en background: endpoint retorna en <50ms; retry automático con backoff; Beat para job nocturno de reconciliación; alertas Slack si falla; métricas en Flower. | PythonEndpoint <50ms; reintento con backoff ante fallo; 0 tareas huérfanas; alert en Slack si tarea no corre en su ventana; tasa de éxito >99% en 7 días. | |
| Arquitectura |
Repository Pattern, Unit of Work y principios SOLID en Python
Abstracción de persistencia ·
Protocol typing · in-memory repository · inversión de dependencias · OCP · SRP · DIPSQLAlchemy (lo que se abstrae) + Pytest (tests de dominio sin DB) + OOP avanzado
|
Separar la lógica de negocio pura de los detalles de almacenamiento para que sea testeable en aislamiento y extensible sin modificar el código existente. | Difícil | Refactorizar un servicio para que su lógica de dominio se pruebe sin base de datos usando un in-memory repository; añadir canal de notificación nuevo sin modificar el servicio existente. | PythonTests de dominio <1s sin Docker; intercambiar SQL↔in-memory sin tocar la lógica; nuevo canal de notificación sólo requiere implementar un Protocol. |
|
| Mensajería |
Event-driven con RabbitMQ o Kafka: producers, consumers e idempotencia
Producers · consumers · dead letter queue · idempotency key · exactly-once semantics · outbox pattern ·
aiokafka / aio-pikaasyncio + Redis (ya conoce mensajería simple) + Repository Pattern (outbox)
|
Desacoplar microservicios mediante eventos para lograr consistencia eventual y tolerancia a fallos parciales — arquitectura base de empresas como Uber, Shopify e Instagram. | Difícil | Sistema de pedidos donde orders-service publica eventos y inventory-service los consume idempotentemente con outbox pattern; DLQ con alertas; mensaje duplicado procesado una sola vez. |
PythonIdempotency key previene doble procesamiento verificado con test de replay; outbox garantiza at-least-once; DLQ recibe mensajes fallidos con contexto completo. | |
| CI/CD |
GitHub Actions / GitLab CI: pipelines completos y seguridad en CI
lint → test → build → scan → deploy · matrix strategy · reusable workflows · Trivy · pip-audit · SARIF · branch protection
Docker (lo que se construye y escanea) + Testing (lo que corre en CI) + Git workflow
|
Automatizar el ciclo completo de validación y despliegue para eliminar deploys manuales e integrar seguridad en el pipeline desde el inicio. | Medio | Pipeline con 4 gates: pip-audit (SCA) → ruff+mypy (lint) → pytest (tests) → Trivy (image scan) → deploy a staging; PR sin verde no puede hacer merge; secrets nunca en logs. | PythonCVE crítica en dependencia bloquea el merge; SARIF exportado a GitHub Security tab; deploy automático sólo si todos los checks pasan; 0 credenciales en artefactos. | |
| Cloud / AWS |
AWS Core: ECS/Fargate, RDS, S3, ElastiCache, SQS e IAM roles
Task definitions · ALB · Parameter Store · IAM least privilege · VPC privada · auto scaling · boto3 para automatización
Docker (contenedores en ECS) + pydantic-settings (config desde Parameter Store) + Celery (SQS como broker)
|
Desplegar una arquitectura de microservicios en AWS sin gestionar servidores, con escalado automático, alta disponibilidad y acceso a recursos sin credenciales hardcodeadas. | Medio | Stack completo en Fargate: 2 servicios con ALB, RDS en subnet privada, ElastiCache y SQS; todo definido en Terraform; acceso a S3 via IAM task role sin access keys; auto scaling ante CPU >70%. | PythonRDS inaccesible desde internet; boto3 script audita que no hay buckets S3 públicos; auto scaling activa en <60s; 0 credenciales en variables de entorno de tareas. | |
| NoSQL |
MongoDB: document modeling, agregaciones y elección SQL vs NoSQL
Embedded vs referenced · índices compuestos · aggregation pipeline ·
$lookup · Motor async driver · cuándo NO usar MongoDBPostgreSQL (contraste de modelos) + asyncio (Motor async driver) + Repository Pattern
|
Modelar datos no estructurados o con esquema variable eligiendo entre embedding y referencias según patrones de acceso — y saber cuándo PostgreSQL es siempre mejor. | Medio | Catálogo de productos con atributos variables por categoría en MongoDB; aggregation para analytics de ventas por región; justificación documentada de cada decisión embedding vs reference. | PythonPipeline de aggregation sin $lookup innecesario; Motor async client via Repository Pattern; ADR documentando por qué MongoDB sobre PostgreSQL para este caso concreto. |
|
| Load Testing |
Locust o k6: escenarios de carga, análisis de P95 y bottlenecks
Virtual users · ramp-up · P50/P95/P99 latency · throughput · identificación del cuello de botella · Locust en Python
FastAPI + Redis (caché que mejora resultados) + PostgreSQL (DB como bottleneck potencial)
|
Identificar cuellos de botella antes de producción mediante pruebas de carga representativas, con evidencia cuantitativa de la mejora después de cada optimización. | Medio | Escenario de 500 usuarios simultáneos sobre la API; identificar el bottleneck principal con evidencia; resolver y re-testear; documentar mejora de P95 antes vs después. | PythonP95 latency <500ms bajo 500 usuarios tras la optimización; bottleneck identificado con evidencia (EXPLAIN ANALYZE, profiler o Redis stats); mejora documentada con gráficas de Locust. |
04
| Área | Tema Específico | Objetivo | Dif. | Recursos | Proyecto / Validación | Criterio de Éxito |
|---|---|---|---|---|---|---|
| System Design |
CAP Theorem, consistencia eventual y PACELC
CP vs AP trade-offs · read-your-writes · monotonic reads · linearizability · eventual consistency patterns · saga pattern
Mensajería event-driven + MongoDB + PostgreSQL (contraste de garantías) + Redis
|
Tomar decisiones arquitectónicas informadas sobre modelos de consistencia según los requisitos de negocio — fundamento de todo diseño a escala de MercadoLibre, Uber o Stripe. | Experto | Diseñar el sistema de inventario de un e-commerce: justificar si priorizar disponibilidad o consistencia en cada operación; implementar saga pattern para el flujo de checkout distribuido. | PythonADR con análisis CAP/PACELC para las 3 operaciones críticas; saga compensatoria implementada en Python con Celery; rollback automático ante fallo parcial verificado con chaos test. | |
| System Design |
Sharding, replicación y particionamiento de bases de datos
Horizontal sharding · consistent hashing · read replicas · replication lag · hot spots · pgBouncer · connection pooling
CAP Theorem + PostgreSQL avanzado + Load Testing (evidencia de necesidad)
|
Escalar la capa de persistencia más allá de una instancia única sin sacrificar la consistencia de datos críticos — habilidad que distingue a ingenieros de Stripe o Netflix. | Experto | Diseño de un URL shortener a 100M URLs/día con sharding por hash de alias, read replica para analytics y pgBouncer para connection pooling; benchmark documentado con pgbench. |
PythonDiagrama con estrategia de sharding, análisis de hot-spots y plan de rebalanceo; pgBouncer reduce conexiones activas en >80%; psycopg3 en Python conecta al pool correctamente. |
|
| Performance |
Database query optimization: EXPLAIN ANALYZE, índices avanzados y N+1
Partial indexes · BRIN vs B-tree · covering indexes · prepared statements · query plan forcing ·
pg_stat_statementsSharding/replicación + SQLAlchemy (N+1 ya introducido) + EXPLAIN básico (Junior)
|
Optimizar la capa de base de datos para soportar carga de producción sin escalar hardware innecesariamente, con evidencia cuantitativa de cada mejora. | Experto | Reducir la query más lenta de una API de analytics de 2s a <200ms; documentar cada cambio con EXPLAIN ANALYZE antes/después; 0 Seq Scans en tablas >100k filas tras la optimización. | PythonEXPLAIN ANALYZE evidencia mejora ≥10x; partial index aplicado donde <20% de filas califican; pg_stat_statements identifica la siguiente query costosa automáticamente. |
|
| Performance |
Profiling: py-spy, cProfile, memory_profiler y flamegraphs
Sampling vs instrumenting profilers · heap profiling · call stack analysis ·
tracemalloc · Austin · Scaleneasyncio (profiling de coroutines) + Load Testing (evidencia del problema)
|
Localizar cuellos de botella con evidencia cuantitativa antes de optimizar — evitar premature optimization es la diferencia entre un senior y alguien que "arregla" lo que no está roto. | Experto | Identificar y resolver los 3 hotspots principales de una API con flamegraph de py-spy en producción sin parar el proceso; documentar reducción ≥40% de CPU time con benchmarks antes/después. | PythonFlamegraph generado desde proceso en vivo; reducción ≥40% CPU en el endpoint más costoso; memory_profiler confirma 0 memory leaks tras la optimización. | |
| Performance |
Python 3.13+ free-threading (no-GIL) para workloads CPU-bound
GIL history ·
PYTHON_GIL=0 · threading sin GIL · shared state safety · benchmarking con concurrent.futures · vs multiprocessingasyncio (I/O-bound) + Profiling (evidencia de cuándo aplica) + OOP (thread safety)
|
Explotar paralelismo real en tareas CPU-intensivas en Python 3.13+ que antes requerían multiprocessing, comparando enfoques con benchmarks rigurosos. | Experto | Motor de scoring de recomendaciones: comparar single-thread vs multiprocessing vs free-threading en Python 3.13 con 8 cores; documentar speedup real y correctitud thread-safe. | PythonSpeedup ≥3x demostrado con PYTHON_GIL=0 vs single-thread en tarea CPU-bound; análisis de correctitud con tests de concurrencia; benchmarks reproducibles con timeit. |
|
| Observabilidad |
OpenTelemetry: traces, métricas y logs correlacionados end-to-end
Spans · baggage · context propagation · OTel Collector · OTLP exporter · auto-instrumentation · Jaeger · correlación trace-log
Logging estructurado (correlation IDs) + asyncio (tracing de coroutines) + Mensajería (propagación cross-service)
|
Instrumentar un ecosistema de microservicios para que cualquier petición sea rastreable de extremo a extremo — estándar de observabilidad en Netflix, Uber y Stripe. | Difícil | 3 microservicios con OTel auto + manual instrumentation; traces completas en Jaeger; correlación trace-log-metric por trace_id; diagnóstico de petición fallida en <2 min sin acceder al servidor. |
PythonDada petición fallida, identificar servicio y línea causante en <2 min; spans de queries SQL visibles en Jaeger; context propagado correctamente a través de Kafka y HTTP. | |
| Observabilidad |
Prometheus + Grafana: SLI/SLO, error budgets y burn rate alerts
RED method · PromQL · recording rules · SLO burn rate alerts · Alertmanager · 0 false positives · Thanos para retención
OpenTelemetry (métricas ya exportadas) + FastAPI (instrumentación) + CAP/Resiliencia
|
Definir y monitorear Service Level Objectives que reflejen la experiencia real del usuario, alertando antes de consumir el error budget — práctica estándar de SRE en Google y Netflix. | Difícil | Dashboard con métricas RED para cada servicio; alert de SLO burn rate que dispara cuando el error rate consume el 5% del error budget en 1 hora; 0 false positives en 48hs de monitoring. | PythonAlert dispara en escenario de prueba en <1 min; 0 false positives en 48hs; dashboard exportable como código con Grafana-as-code (Grafonnet o Terraform provider). | |
| Seguridad AppSec |
OAuth2 / OIDC, RBAC/ABAC y OWASP API Security Top 10
Authorization Code Flow · PKCE · Keycloak / Auth0 · scopes · claims · Broken Object Level Auth · Mass Assignment · token introspection
Auth JWT (Junior) + FastAPI DI (guards) + API design
|
Integrar autenticación delegada con un IdP externo y diseñar control de acceso granular que resista los 10 vectores de ataque más comunes en APIs según OWASP 2023. | Difícil | API protegida con Keycloak: PKCE flow para SPA, client credentials para M2M; RBAC por roles; audit propio con checklist OWASP API Top 10; al menos 3 vulnerabilidades corregidas con evidencia. | PythonBOLA y Mass Assignment corregidos verificados con tests de penetración básicos; tokens no almacenados en localStorage; revocación inmediata al logout; scan Semgrep sin hallazgos críticos. | |
| API Avanzado |
gRPC, GraphQL y diseño de APIs a escala multi-versión
Protocol Buffers · streaming bidireccional ·
grpcio Python · GraphQL con Strawberry · API versioning strategies · backwards compatibility · BFF patternFastAPI (REST base) + asyncio (streaming) + System Design (microservicios)
|
Elegir el protocolo de comunicación óptimo para cada contrato inter-servicio y diseñar APIs que evolucionen sin romper a los consumidores existentes. | Difícil | Comunicación entre orders y payments via gRPC con streaming; BFF en FastAPI que adapta los contratos para móvil vs web; proto contracts versionados con backwards compatibility verificada. |
PythonLatencia inter-servicio <5ms en red local; proto contract v1 y v2 coexisten sin breaking change; BFF reduce el payload del cliente móvil en ≥50%. | |
| Kubernetes |
Kubernetes: Deployments, HPA, Ingress, RBAC y zero-downtime deploys
Rolling update · liveness/readiness/startup probes · resource limits · HPA · Ingress con TLS · RBAC por namespace · helm basics
Docker + AWS/cloud (EKS) + CI/CD (deployment step)
|
Desplegar y escalar aplicaciones en Kubernetes con zero-downtime deployments y autoescalado basado en métricas reales de carga — standard de la industria en 2026. | Difícil | Deploy de la API en k8s (minikube/kind): rolling update sin downtime verificado con test de carga continuo; HPA escala 2→10 pods cuando CPU >70%; 0 requests fallidos durante el deploy. | Python0 requests fallidos durante rolling update; HPA activa en <60s; script Python de smoke test verifica correctitud post-deploy automáticamente en CI. | |
| Liderazgo Técnico |
Architectural Decision Records (ADRs) y code review de alto impacto
Formato ADR (context/decision/consequences) · revisión por pares · feedback constructivo · decisiones reversibles vs irreversibles · documentación viva
System Design + toda la experiencia Senior acumulada
|
Documentar decisiones arquitectónicas con contexto y consecuencias para evitar repetir debates, facilitar el onboarding y elevar el nivel de las code reviews del equipo. | Medio | Escribir 3 ADRs para decisiones técnicas reales: elección de ORM, estrategia de mensajería y política de versionado de API; facilitar el proceso de revisión hasta consenso con el equipo. | ADRs con alternativas consideradas, pros/cons y consecuencias explícitas; aprobados en ≤2 iteraciones de review; equipo puede referenciarlos sin necesidad de explicación verbal. |
05
| Área | Tema Específico | Objetivo | Dif. | Recursos | Proyecto / Validación | Criterio de Éxito |
|---|---|---|---|---|---|---|
| IA Agentica |
LangGraph: state machines, nodos, edges condicionales y human-in-the-loop
StateGraph · interrupt_before · human-in-the-loop · streaming events · multi-agent coordination · MemorySaverasyncio (agents son async) + FastAPI (serving del agente) + Mensajería (orquestación)
|
Orquestar flujos de trabajo autónomos multi-agente con control de estado explícito y capacidad de intervención humana — el patrón de arquitectura más demandado en backends 2026. | Experto | Agente de customer support en Python que consulta DBs, ejecuta scripts de compensación y escala a humano con contexto completo; tasa de resolución autónoma >70% medida en 30 días. | PythonTasa de resolución autónoma >70%; escalado a humano con traza completa del grafo; estado del agente persiste entre conversaciones con MemorySaver; tests con mock LLM. |
|
| IA Agentica |
PydanticAI: structured tool calling, type-safe agents y outputs tipados
Agent · Tool · RunContext · structured outputs con Pydantic models · dependency injection en agentes · testing con TestModelPydantic v2 (modelos tipados) + LangGraph (conceptos de agentes) + FastAPI DI
|
Construir agentes de IA con outputs estructurados y tipados que se integren limpiamente en backends Python existentes sin parsing frágil de texto libre. | Experto | Agente de análisis financiero que extrae datos de DBs, genera reportes tipados en Pydantic y decide acciones de portfolio; 0 parsing errors de outputs del LLM en 100 ejecuciones de test. | Python0 parsing errors; outputs validados con Pydantic en 100% de ejecuciones; suite de tests con TestModel sin llamadas reales a LLM; cobertura >80% del agente. |
|
| IA Agentica |
RAG Systems: vector DBs, chunking avanzado, reranking y evaluación
pgvector · Qdrant · embedding models · semantic search · HyDE · reranking con ColBERT · RAGAS evaluation framework
PostgreSQL (pgvector extension) + asyncio (búsqueda async) + PydanticAI (integración)
|
Construir sistemas de retrieval que permitan a los LLMs razonar sobre bases de conocimiento privadas con precisión medible y latencia de producción. | Experto | RAG sobre documentación técnica interna con pgvector: precision@10 >85%; latencia <2s; evaluación automatizada con RAGAS en un dataset de 100 preguntas de referencia. | PythonRAGAS: faithfulness >0.85, answer relevancy >0.80; latencia P95 <2s; pipeline de evaluación ejecutable en CI con dataset versionado en Git; chunking strategy documentada con ADR. | |
| Platform Engineering |
Internal Developer Platform (IDP): golden paths y self-service
Backstage · service templates · paved roads · self-service provisioning · developer portal · onboarding automation · software catalog
Kubernetes + CI/CD + Cloud (todo lo que se provisiona) + ADRs (decisiones de plataforma)
|
Crear abstracciones que permitan a los equipos crear nuevos servicios con seguridad, observabilidad y CI/CD nativo en minutos — sub-lineal scaling del equipo de plataforma. | Experto | Template en Backstage que provisiona: repo GitHub, pipeline CI/CD, monitoring, secrets en Vault, Namespace k8s y AlertManager rule en <10 minutos; adopción >80% del engineering team. | Tiempo de creación de nuevo servicio: de días a <10 minutos; adopción >80% sin soporte del platform team; nuevo developer desplegando en producción en el primer día. | |
| Platform Engineering |
Kubernetes avanzado: KEDA, Operators, Istio y multi-cluster
Event-driven autoscaling · Custom Resource Definitions · traffic management · mTLS · canary deployments · Cluster API · multi-cluster federation
Kubernetes Senior + Mensajería (KEDA basado en cola) + Observabilidad (Istio + métricas)
|
Diseñar la plataforma de cómputo para que los equipos escalen automáticamente basados en señales de negocio reales y tengan comunicación inter-servicio segura y observable sin cambiar código. | Experto | KEDA que escala workers de SQS de 1 a 50 pods según longitud de cola; Istio con mTLS automático entre todos los servicios; canary deployment al 10% con auto-rollback ante error rate >1%. | PythonScaling reactivo en <30s; 100% tráfico inter-servicio con mTLS verificado en Kiali; canary rollback automático ante degradación; script Python de validación de mTLS en CI. | |
| Engineering Metrics |
DORA Metrics, Developer Experience (SPACE) y toil elimination
Deployment Frequency · Lead Time · MTTR · CFR · SPACE framework · toil measurement · feedback loops · dashboards desde GitHub + PagerDuty
CI/CD (datos de deployments) + Observabilidad (MTTR) + Platform Engineering
|
Cuantificar la capacidad de entrega del equipo con métricas objetivas para identificar bloqueos sistémicos y priorizar mejoras de proceso con impacto medible. | Experto | Dashboard automatizado con DORA metrics desde GitHub + PagerDuty via Python; tendencias de 90 días; equipo clasificado en tier "High" DORA en ≥3 métricas; toil reducido en >30%. | PythonScript Python ingesta datos de GitHub API y PagerDuty; dashboard actualizado automáticamente; cada métrica con objetivo SMART y dueño; toil eliminado documentado con tiempo ahorrado. | |
| Estrategia Técnica |
Tech Debt: inventario, cuantificación y roadmap de amortización
Debt ledger · interest rate calculation · kill-by dates · refactor sprints · deuda de arquitectura vs código · priorización con DORA impact
ADRs + DORA Metrics (impacto de la deuda en métricas) + Engineering Metrics
|
Gestionar la deuda técnica como activo financiero: cuantificarla en "engineering days", priorizarla con el negocio y planificar su amortización con ROI demostrable. | Experto | Inventario de deuda técnica valorado en "engineering days"; roadmap de 18 meses con ROI estimado por ítem; deuda priorizada por impacto en DORA metrics; aprobado por CTO con tracking trimestral. | Deuda expresada en tiempo y costo; impacto de cada ítem en Lead Time o MTTR documentado; roadmap aprobado en revisión con VPs; 3 ítems críticos amortizados en el primer trimestre. | |
| Estrategia Técnica |
Engineering roadmaps: OKR alignment y capacity planning
Technical strategy document · build vs buy framework · RFC process · stakeholder alignment · forecasting de capacidad · hiring plan técnico
Tech Debt + DORA Metrics + Platform Engineering (iniciativas a planificar)
|
Traducir la estrategia de negocio en inversiones técnicas concretas con impacto medible y alineación ejecutiva — la diferencia entre un Staff que ejecuta y uno que dirige. | Experto | Documento de estrategia técnica de 18 meses: 3 iniciativas con OKRs (plataforma de IA, observabilidad, developer experience), análisis de capacidad del equipo y plan de riesgos con mitigaciones. | Aprobado en revisión con VPs; tracking trimestral de progreso con datos objetivos publicados al equipo; cada iniciativa con impacto medible en DORA o en métricas de negocio. | |
| Multi-Cloud |
Cloud-agnostic architecture: Terraform modules y FinOps
Provider-agnostic Terraform · CNCF landscape · portabilidad de workloads · cost attribution por squad · rightsizing · Kubecost · FinOps maturity model
Kubernetes avanzado + AWS (experiencia cloud concreta) + Platform Engineering (IDP como cliente)
|
Diseñar infraestructura sin vendor lock-in y con visibilidad de costos por producto y equipo para tomar decisiones de arquitectura con plena consciencia financiera. | Experto | Módulos Terraform abstraídos que despliegan el mismo stack en AWS y GCP; dashboard de cost attribution por namespace con Kubecost; rightsizing plan que reduce el bill en >20% sin degradar SLOs. | PythonDeploy idéntico en ambas nubes en <30 min; reducción >20% documentada; script Python detecta recursos huérfanos semanalmente; cada squad recibe reporte de costo automático. | |
| Open Source & Comunidad |
Open source contributions, thought leadership y mentoring
Contribuciones a proyectos CNCF o Python core · conference talks (PyCon, DjangoCon) · internal tech blog · mentoring program · RFC públicas
Todo el nivel Staff — impacto acumulado que se amplifica externamente
|
Amplificar el impacto más allá de la organización construyendo reputación en la comunidad Python/backend que atrae talento, genera credibilidad y retroalimenta con inteligencia del ecosistema. | Experto | Contribución aceptada a proyecto Python open source con >1k stars; charla en PyCon, EuroPython o conferencia regional; post técnico con >1000 lecturas; 2 ingenieros junior mentorados a nivel SSR. | PythonPR mergeada en repo con >1k stars; charla aceptada por CFP con revisión ciega; mentorado promovido o alcanza objetivo técnico acordado en <12 meses. |