Hola, soy Jotive
Backend Engineer especializado en Python y Node.js. Diseño APIs y microservicios para entornos productivos, mejoro performance, destrabo incidentes críticos e integro IA en flujos reales de negocio.
Más de 6 años en backend. Stack principal: FastAPI · PostgreSQL · Redis · Docker · AWS · Azure. Desde Colombia.
# Idempotency dual-layer: Redis lock + Postgres unique
@router.post("/orders", status_code=201)
async def create_order(
payload: OrderIn,
idem_key: str = Header(...),
):
async with redis_lock(idem_key, ttl=600):
try:
return await orders.insert(payload, idem_key)
except UniqueViolation:
# replay tardío — devolver existente
return await orders.fetch_by_key(idem_key) Stack
Experiencia
Backend Engineer · Python + AI Integration
Dichter & Neira · LATAM
Backend Engineer
Periferia IT Group
Backend Engineer
Tata Consultancy Services
Backend Software Engineer
WOM Colombia · Telecom
Proyectos
Order Processing Platform
Idempotency dual-layer: Redis lock atómico + Postgres unique constraint. Token bucket Lua para rate limiting sin race conditions. Cursor pagination, cache-aside con invalidación por evento. Cada decisión documentada como ADR.
Observability Starter
Stack de observabilidad para microservicios Python: structlog JSON con correlation ID propagado entre servicios, métricas RED por endpoint vía Prometheus, trazas distribuidas OpenTelemetry. Un request ID une el log, la métrica y el trace.
LLM Quota Gateway
Proxy OpenAI-compatible que pone quota por tenant, semantic cache (pgvector) y audit de costo delante de cualquier proveedor. En producción ruteando a OpenRouter (multi-modelo con una key): cada producto que lo consume queda con su gasto de IA desglosado. Drop-in — cambiás una base URL.
Multi-Tenant API
Aislamiento schema-per-tenant en PostgreSQL enforced a nivel de conexión — no en filtros de aplicación. Una WHERE olvidada devuelve vacío, nunca datos de otro cliente. Alembic multi-head migrations.
Webhook Delivery Engine
At-least-once delivery con circuit breaker por endpoint, exponential backoff con jitter, y dead letter queue. Endpoints lentos no bloquean la entrega al resto. Cada webhook tiene recibo de entrega o entra al DLQ.
Thesis RAG · Unicórdoba
RAG conversacional sobre 271 tesis de Ingeniería de Sistemas de la Universidad de Córdoba (vía API DSpace). Búsqueda híbrida pgvector + full-text en español con RRF, agente orquestado en LangGraph, y respuestas con cita trazable a la tesis fuente; si no hay evidencia suficiente lo dice en vez de alucinar. En producción sobre Cloud Run + Neon, con suite pytest y CI.
Blog
Ver todos →Cuatro bugs que solo encontré cuando medí mi RAG
Tenía un RAG sobre 271 tesis que funcionaba bien a ojo. Lo medí en serio y encontré cuatro cosas rotas que leyendo el código jamás habría visto.
Un gateway para saber qué producto me quema la factura de LLM (y el día que mi README mintió)
Puse en producción un proxy que le pone quota, cache y audit de costo por producto a mis llamadas de LLM. En el camino descubrí que el README prometía algo que el código no hacía.
El patrón que encontré en los algoritmos no es el tema, es la miniatura
Generé una herramienta para ver qué videos rompen la mediana de vistas de su canal. El patrón que predice el pico no estaba en el tema, sino en cómo se ve la miniatura.