AI Engineer
Diseño el harness, los agentes escriben el código y yo verifico y decido. Así construyo apps full-stack y agentes de IA que operan en producción.
5+
Años de experiencia
2x
Hackathons ganadas
3
Startups apoyadas
Capacidades
Claude Code, subagentes, skills, hooks y MCP dentro de un harness determinista: el modelo decide, yo fijo las condiciones, reviso y respondo por el resultado.
Agentes con LangGraph, LangChain y MCP que toman pedidos, atienden leads y operan con guardrails, kill switches y humano en el loop.
Agentes conversacionales sobre WhatsApp Business API, Telegram y voz, con memoria y handoff a humanos.
Apps web con React, Next.js, TypeScript, Python, Django, FastAPI, Supabase y APIs REST robustas.
Sistemas RAG con embeddings, pgvector, Qdrant y búsqueda semántica, incluido RAG multimodal de texto e imagen.
Datasets versionados y replay de producción, evaluadores deterministas, LLM-as-judge solo para lo subjetivo y revalidación server-side de todo lo crítico.
Construyo servidores MCP y conecto agentes a apps de escritorio: HF Studio lleva 82 modelos de video e imagen y el audio de ElevenLabs a Claude Code, Codex y ChatGPT, con cotización obligatoria antes de gastar; Blender, DaVinci Resolve y TouchDesigner se manejan por MCP desde la terminal.
Producción audiovisual dirigida por agentes: Kling, Seedance y Wan para video, ElevenLabs para voz, efectos y música, y edición programática con HyperFrames y DaVinci Resolve hasta el reel final, con el costo de cada generación visible antes de lanzarla.
Escenas y animación en Blender (cámaras, IK, render en Eevee), visuales en tiempo real que reaccionan al audio en TouchDesigner con GLSL, y visión por computador aplicada (MediaPipe, COLMAP) para pegar gráficos al mundo real.
Cómo trabajo
No escribo cada línea a mano ni dejo al agente solo. Diseño el contexto, las reglas y las herramientas con las que Claude Code planea, escribe y verifica; conservo las decisiones de arquitectura, la revisión y la responsabilidad del resultado.
Cada sesión arranca con memoria: un segundo cerebro en Obsidian con notas de proyecto, decisiones y bugs resueltos (síntoma → causa raíz → arreglo) que un hook inyecta al iniciar Claude Code, y un CLAUDE.md por repo con las reglas duras. El agente nunca empieza de cero.
Antes del código: entrevista de dominio (una decisión a la vez), PLAN.md con fases y un entregable verificable por fase, modelo de datos desde el día 1 y ADRs solo para lo difícil de revertir. Construí /roadmap para saber en qué fase voy y qué cambió desde que se aprobó el plan.
El modelo decide; el harness fija las condiciones. Skills con las convenciones del proyecto, subagentes con contexto aislado, MCP para GitHub, docs, Railway, Supabase, Vercel y Playwright, MCP propios o locales para Blender, DaVinci Resolve, TouchDesigner y HF Studio, y slash commands como /commit con lint y build previos. Instalo skills solo cuando el trabajo las pide.
Claude Code ejecuta; yo dirijo. Bloques profundos sin interrupciones, entorno local-first (nada toca la nube hasta que funciona en local), worktrees y Herdr para correr varios agentes en paralelo en la misma sesión. En los agentes que van a producción, lo crítico no lo ejecuta el LLM: el backend suma, valida y revalida.
Lint y build como gate en cada hito, tests donde el riesgo lo exige (el que falla si un tenant ve datos de otro), /code-review local antes de abrir el PR, evals con datasets de producción y una segunda opinión de otra familia de modelos: Codex revisa el plan y el diff en un panel de Herdr, lee el repo por su cuenta y emite su veredicto por rondas hasta aprobar. El PR es la unidad de revisión y el merge lo aprueba un humano.
Al cerrar, el conocimiento vuelve al vault: estado del proyecto, decisiones con las alternativas descartadas y bugs con su causa raíz. La siguiente sesión, humana o agéntica, arranca más arriba de donde terminó la anterior.
El modelo decide; el harness fija las condiciones.
El LLM no ejecuta lo crítico: el servidor siempre revalida.
El agente que escribió el código no es el que lo revisa: Codex evalúa lo que construye Claude Code.
Si no produjo código que corre, una nota o un ADR, no cuenta como hecho.
Logros
Primer lugar en el track AI Security y premio general de la hackathon de Platanus en Buenos Aires — 36 horas non-stop, 110 hackers seleccionados de LATAM, sponsor principal Anthropic. Construí Tranquera, un proxy interceptor para Claude Code que aplica políticas organizacionales en runtime.
Primer lugar en el track Best Agentic App in WhatsApp de la hackathon más grande de Colombia, organizada por la Colombia Tech Week en Bogotá con más de 150 participantes.
Productos

Un equipo de agentes financieros con los que hablas por chat — desde WhatsApp, Telegram, Gmail o web. Su promesa: «sabe cómo vives, invierte como eres». Cuatro agentes especializados se coordinan: (1) Gastos e ingresos registra y clasifica movimientos, genera resúmenes mensuales y detecta patrones históricos; (2) Inversiones prepara operaciones bursátiles en Wallbit pero nunca las ejecuta sin tu aprobación; (3) Analista de mercado contextualiza precios, evolución y fundamentos de activos según tu perfil; (4) Perfil de riesgo mide tu tolerancia real a partir del historial (no de cuestionarios) y bloquea operaciones incongruentes. Registras gastos como hablas — texto, audio o foto del recibo — y la sincronización con Gmail captura movimientos sin intervención manual; la búsqueda es en lenguaje natural, sin filtros ni categorías exactas, sobre embeddings en pgvector. El dinero vive en Wallbit (no en Tresqu): desde el mismo chat compras y vendes acciones, ETFs y bonos, transfieres y consultas en vivo, con soporte multimoneda (COP, USD, EUR y otras) y conversiones en tiempo real.

Mi propio estudio de video, imagen y audio con IA sobre las APIs de Higgsfield y ElevenLabs, pensado primero para agentes: una API REST, un servidor MCP para que Claude Code, Codex, Claude Desktop y ChatGPT generen por mí, y una interfaz web en español (con inglés opcional) para hacerlo a mano, todo sobre la misma biblioteca. Cubre 82 endpoints de Higgsfield (66 de video, 15 de imagen y 1 de referencias), cada uno con el JSON Schema extraído de la documentación oficial, así que los formularios de la UI se generan del esquema sin código por modelo y los agentes buscan por capacidad (texto a video, imagen a video, fotograma inicial y final, referencias, edición, extensión, transferencia de movimiento) y no por marca. El audio viene de ElevenLabs: cambio de voz en un tramo exacto de un video con efectos de terror, texto a voz, efectos de sonido, música y aislamiento de voz, más una sonoteca que clasifica cada sonido para reutilizarlo sin volver a pagar. La regla central es que nada se genera a ciegas: el costo se ve junto al botón y, por MCP, generar exige una cotización de un solo uso ligada a esa petición y a una clave de idempotencia, porque la API de Higgsfield no deduplica y un reintento ambiguo podía cobrar dos veces. Debajo hay trabajos asíncronos y persistentes: validación antes de gastar créditos, cola local según la concurrencia de la cuenta (Higgsfield responde 400 y no 429 al llegar al límite), webhooks que solo disparan una consulta autenticada porque no vienen firmados, y copia local de las salidas porque Higgsfield solo las guarda 7 días. Incluye presets con variables, lotes con cotización total, un recomendador de modelos en lenguaje natural y 12 casos de uso con tutorial. Cada iteración pasó por rondas de revisión de Codex antes de cerrarse, y hoy produce los reels de Frostbyte junto a Blender, HyperFrames y DaVinci Resolve.

Un lienzo infinito para todo lo que queda pendiente mientras trabajo con agentes de IA. Cuando Claude Code, Codex u otro agente resuelve una tarea, de ella van saliendo otras: un bug que se ve de paso, una idea para después, una verificación antes de publicar. Uno sigue con la tarea principal y, al terminar la sesión, esas tareas laterales quedaron enterradas en la conversación. Parkboard las recoge: cuando digo «dejémoslo para después», el agente las parquea con el CLI `park`, con contexto para retomarlas en frío y con el agente, el id de sesión y la carpeta de origen, así que volver a la conversación donde nacieron es un paso. En el lienzo, las tarjetas se agrupan por proyecto y se mueven arrastrándolas, con estado, prioridad, tipo, notas, enlaces, nota del vault de Obsidian y un número corto (#12) para pedirle a cualquier agente «trabaja en la 12». Tres vistas (Tareas, Ideas y Notas) para que las ideas no tapen el trabajo, y áreas personal y de trabajo. El CLI no tiene dependencias, devuelve JSON cuando se usa desde un pipe, ofrece `--dry-run` en las escrituras y `park schema` describe cada comando, flag y código de salida para que un agente lo use sin adivinar. Es privado por defecto: inicio de sesión con Clerk más una lista de correos permitidos, y las claves del CLI se guardan como hash SHA-256. Las escrituras van en cadena por tarjeta y por proyecto, con conflictos 409, para que el agente y yo podamos editar a la vez sin pisarnos.

Proxy interceptor para Claude Code que cierra la brecha de alineamiento organizacional: Claude Code está alineado con los valores de Anthropic, pero no con las políticas de cada empresa que lo despliega. Tranquera es la capa intermedia — una aduana silenciosa que aplica reglas no-code en runtime con una cascada Regex → Pattern → Haiku 4.5 judge de menos de 200ms de overhead y cuatro acciones explícitas (BLOCK · REDACT · WARN · LOG). El compliance officer (no técnico) define políticas en lenguaje natural desde un visual builder; el dev se onboardea con un solo comando (`npx tranquera setup`, device flow OAuth con Google y export automático del `ANTHROPIC_BASE_URL` al shell rc). La atribución por dev se resuelve bakeando el token en el path de la URL — Claude Code no permite headers custom. Un AI Suggestor con cron diario y Haiku 4.5 propone reglas nuevas a partir de los LOGs con humano-in-the-loop. Postgres + pgvector listo para pre-filtrar reglas por similitud semántica. Ganador del track AI Security y del premio general en Platanus Hack 26 Buenos Aires (sponsor principal: Anthropic).

Plataforma profesional de entrega de galerías para fotógrafos con IA multimodal de última generación. Analiza automáticamente cada foto con GPT-4o y Gemini 2.0 Flash: asigna un score 1-10, evalúa composición, pose y calidad de fondo, categoriza escenas (ceremonia, retratos, fiesta, exterior...) y genera highlights del proyecto. Incluye búsqueda semántica de fotos por texto natural ('novia bailando', 'decoración de mesa') con RAG multimodal usando Gemini Embedding 2 de Google — el primer modelo nativamente multimodal de Google que mapea texto e imagen al mismo espacio vectorial — almacenado en pgvector. La galería pública reordena las fotos según las favoritas del cliente y crea frases poéticas de portada con IA. Complementado por festora-vision-api: microservicio independiente con blur detection (Laplacian), scoring técnico BRISQUE/NIMA, análisis de emociones (DeepFace) y clustering semántico CLIP/DBSCAN.

Networking de eventos presenciales que por fin se ve: escaneas el QR personal de otra persona y quedas dentro del evento y conectado en el mismo gesto — sin botones de 'agregar', sin solicitudes, sin conectar desde el sofá. Cada arista del grafo representa un encuentro real (nace solo al abrir el QR de alguien, nunca en el render) y la app se distribuye persona a persona por membresía contagiosa: entrar a un evento siempre pasa por alguien que ya está dentro. La constelación completa del evento — visible para cualquier asistente, no 'mi red hasta 2º grado' — se dibuja en vivo con react-force-graph-2d sobre Canvas, sincronizada en tiempo real vía Supabase Realtime, con estrellas por asistente y cierre triádico cuando tres personas que ya se conocen forman un triángulo. Auth exclusivamente con Google OAuth, tags vivos de rol/interés/intención que crecen con el uso, y un onboarding de una sola pantalla pensado para usarse de pie, a una mano, en medio del ruido de un evento. Construido con Next.js 16 (App Router, React 19, React Compiler) y Supabase (Postgres + RLS, Auth, Realtime).

Sistema operativo completo de un bar y restaurante, con la IA en el núcleo del producto y no como accesorio: atiende, vende, escribe la carta y decide qué se puede pedir. Los pedidos entran por tres puertas que terminan en la misma comanda: el QR de cada mesa, la app del cliente y un agente de IA que atiende el WhatsApp del negocio a toda hora. Ese agente está construido con LangChain create_agent sobre LangGraph y GPT-4o-mini, con tools que lo conectan al negocio: consultar la carta y cada producto, buscar sin importar tildes ni errores de escritura, leer el historial y las preferencias del cliente, cotizar, verificar cobertura, crear, modificar y cancelar pedidos, y pedir refuerzo humano. Su memoria conversacional vive en PostgreSQL con PostgresSaver (un hilo por contacto y día) y el contexto de largo plazo (dirección, preferencias, compras anteriores) entra por tools. Entiende notas de voz con gpt-4o-mini-transcribe y fotos con visión multimodal, incluidos los comprobantes de pago, de los que extrae monto, fecha y número de referencia. Antes de crear un domicilio valida la dirección contra la zona de cobertura dibujada a mano sobre el mapa (ray casting en Django, Turf en el front) y, cuando la conversación se sale del libreto, escala a una persona y se pausa sin perder el hilo. El resto del producto también es IA: generador de fotos profesionales de producto con cuatro modelos intercambiables (GPT Image 1.5 y 2, Gemini 3 Pro y 3.1 Flash Image) sobre Cloudflare R2, descripciones de producto redactadas por IA, recomendador de la carta por estado de ánimo o por quiz, búsqueda por voz con Whisper y contenido diario que cambia solo. Debajo corre la operación real: cocina en vivo por WebSocket (Django Channels), mesas por piso con sus QR imprimibles, inventario con recetas y costo real por variante, gastos que separan la inversión del gasto corriente para que el margen no mienta, analítica, reservas, música por piso, juegos multijugador y dos negocios en la misma cuenta, sin comisiones por pedido. En producción todos los días en un local real de Cumbal (Nariño) y base del SaaS que se está empaquetando para otros negocios.

Carrera de tipeo multijugador en tiempo real inspirada en Monkeytype. Cualquiera crea una sala con un código de 5 caracteres, comparte el link y compite por el WPM más alto sobre el mismo texto, con modo espectador para entrar a salas en plena carrera. La arquitectura corre 100% en el edge sobre Cloudflare Durable Objects: un DO 'Room' por sala (estado autoritativo, WebSockets con Hibernation API, hostToken persistente) y un singleton 'RoomRegistry' que mantiene la lista global de salas activas vía RPC entre DOs. El reloj, el texto y el ranking se deciden server-side, así que es imposible hacer trampa cambiando el clock local. Incluye 5 temas, sonidos de teclas sintetizados con Web Audio API (sin samples) y modelo host/player/spectator con kick y reinicio de carrera.

App de escritorio para Windows que transcribe voz a texto en tiempo real y escribe el resultado directamente donde esté el cursor — sin copiar, sin pegar. Push-to-talk con F9: mantén presionado para hablar y suelta para que el texto final corregido aparezca en cualquier app (VS Code, Word, Notion, Chrome…). Soporta dos motores intercambiables: Deepgram Nova-3 (cloud, baja latencia, bilingüe simultáneo es+en con LANGUAGE=multi) o faster-whisper local (sin internet, sin API key, modelos tiny→large-v3). Incluye HUD flotante estilo Vercel con timer, preview en vivo, visualizador de voz y deduplicación por similitud. Vive como icono en la bandeja del sistema, con VAD vía silero-vad ONNX (sin PyTorch). Empaquetado con PyInstaller + Inno Setup como instalador .exe nativo.

App web que convierte una imagen 2D en una nube de puntos 3D navegable usando estimación de profundidad por IA. El backend (FastAPI + Docker en Railway) envuelve Depth-Anything-V2 (checkpoint ViT-S) y devuelve el mapa de profundidad como PNG en escala de grises. El frontend combina la imagen RGB y el depth map en utils/pointCloudUtils.ts: por cada píxel genera un punto 3D donde X,Y se mapean al espacio normalizado (NDC-like, con Y invertida y aspect ratio del alto/ancho) y Z = (depth/255) × depthScale, controlado por sliders de sample rate y depth exaggeration. El resultado son dos Float32Array (positions + colors) que se renderizan con React Three Fiber + drei como un THREE.Points con vertexColors. Permite cambiar entre tres backends de profundidad intercambiables: servidor FastAPI propio, HuggingFace Spaces o la API de OpenAI Images.

Motor de búsqueda semántica inmobiliaria con arquitectura RAG para más de 8,800 propiedades en México. El usuario consulta en lenguaje natural ('casa amplia con jardín en Mérida, 3 recámaras'), Gemini 3 Flash extrae los filtros estructurados (ciudad, tipo, habitaciones, precio), Qdrant pre-filtra y el vector search recupera las propiedades más relevantes semánticamente. Soporta RAG multimodal con Gemini Embedding 2 de Google: cada propiedad se representa con un único vector de 3072 dimensiones que fusiona la descripción de texto con hasta 6 imágenes en el mismo espacio vectorial — permitiendo buscar por texto o por imagen. También soporta embeddings intercambiables (OpenAI text-embedding-3 y gemini-embedding-001) con un playground React que incluye gráfica de similitud interactiva y agente conversacional con LangGraph (ReAct). Desplegado en Railway + Vercel + Qdrant Cloud.
Experiencia
Ungga
Jun 2025 - Presente
Remoto - Proptech México
AI Developer Engineer
Higher Bit Solutions
Mar 2025 - Jun 2025
Remoto - Startup Chilena
Full-stack Developer
Decimetrix
Ene 2022 - Feb 2025
Colombia
Full Stack Developer Engineer
Decimetrix
May 2021 - Dic 2021
Colombia
Software Development Engineer
Intecol SAS
Ene 2021 - Abr 2021
Colombia
Computer Vision Engineer
FAQ
Jaime Aza es un AI engineer colombiano: un ingeniero de software full-stack que construye productos con IA dirigiendo agentes de código (Claude Code, subagentes, skills, MCP) y que lleva agentes de IA a producción con LangGraph, LangChain y la API de WhatsApp. Es ganador de Platanus Hack 26 (Buenos Aires) y del AI Hackathon de la Colombia Tech Week 2025.
Construir productos dirigiendo agentes de IA en lugar de escribir cada línea a mano: el ingeniero diseña el contexto, las reglas y las herramientas (el harness) con las que agentes como Claude Code planean, escriben y verifican código, y conserva las decisiones de arquitectura, la revisión y la responsabilidad del resultado. Jaime Aza trabaja así y, además, construye agentes de IA que operan en producción.
En seis pasos: (1) contexto antes que código, con un segundo cerebro en Obsidian que un hook inyecta en cada sesión y un CLAUDE.md por repo; (2) especificación y plan por fases con entregables verificables y ADRs, seguido con su herramienta /roadmap; (3) diseño del harness con skills, subagentes, hooks y MCP; (4) construcción con Claude Code en un entorno local-first, con varios agentes en paralelo en Herdr; (5) verificación en capas con lint, build, tests, /code-review, evals en LangSmith y una revisión cruzada de Codex sobre el plan y el diff, con el merge aprobado por un humano; y (6) cierre que devuelve el conocimiento al vault para la siguiente sesión.
Jaime Aza se especializa en desarrollo agéntico con Claude Code; agentes de IA en producción con LangGraph, LangChain y MCP; chatbots sobre WhatsApp, Telegram y voz; sistemas RAG con embeddings y búsqueda vectorial (pgvector, Qdrant); evals y guardrails para LLMs; servidores MCP a medida; producción de video, imagen y voz con IA (Higgsfield, Kling, Seedance, ElevenLabs, HyperFrames, DaVinci Resolve); 3D y creative coding con Blender y TouchDesigner; computer vision; y desarrollo full-stack con React, Next.js, TypeScript, Python, Django y FastAPI.
Jaime Aza ganó el Platanus Hack 26 en Buenos Aires (mayo 2026), obteniendo el primer lugar del track AI Security y el premio general, con Anthropic como sponsor principal. También ganó el AI Hackathon de la Colombia Tech Week 2025 (agosto 2025) en el track Best Agentic App in WhatsApp.
Entre los proyectos de Jaime Aza destacan: Tranquera (proxy de políticas para Claude Code), Tresqu (equipo de agentes financieros por chat), Festora (galerías para fotógrafos con IA multimodal), Frostbyte (plataforma para bares y restaurantes con un agente de IA que toma pedidos por WhatsApp), Keyduelo (typing race en el edge), S2T (speech-to-text para Windows), image_to_xyz, RAG Properties, Constela (networking de eventos por QR con grafo en vivo) HF Studio (estudio propio de video, imagen y audio con IA, con API, servidor MCP e interfaz web) y Parkboard (lienzo de pendientes que los agentes de IA llenan desde la terminal con su CLI).
Como revisor independiente de otra familia de modelos. Claude Code implementa y Codex evalúa: Jaime lo arranca en un panel de Herdr dentro del mismo repositorio, para que lea el diff por su cuenta en lugar de fiarse del resumen del agente que escribió el código, y le pide veredicto por rondas sobre el plan, la metodología o el PR. Así revisó los PR de Ungga, aprobó cada iteración de HF Studio y confirmó la solución de retos técnicos antes de enviarla.
Construyó HF Studio, su propio estudio sobre las APIs de Higgsfield y ElevenLabs, con un servidor MCP para que Claude Code y Codex generen video, imagen y audio con el costo visible y una cotización obligatoria antes de gastar. Con él produce los reels de Frostbyte: animación de producto en Blender controlada por MCP, video con Kling, Seedance y Wan, voz, efectos y música con ElevenLabs, y edición final con HyperFrames o el MCP de DaVinci Resolve. También hace visuales en tiempo real con TouchDesigner.
Jaime Aza trabaja de forma remota como AI Developer Engineer en Ungga, una proptech de México, donde construye un sistema multi-agente con LangGraph para atender prospectos y propietarios por WhatsApp y mantiene su pipeline de evaluación en LangSmith. Antes trabajó en Higher Bit Solutions, Decimetrix e Intecol SAS.
Puedes contactar a Jaime Aza por LinkedIn (linkedin.com/in/jaimeaza), GitHub (github.com/Jjat00) o WhatsApp (wa.me/573164277879). Su sitio web oficial es https://jaimeaza.tech.