Agentic Software 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.
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 y Supabase, 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) y worktrees para trabajar en paralelo. 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 y evals con datasets de producción. 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.
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.

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 13 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 agentic software 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.
Un ingeniero de software que construye productos dirigiendo agentes de IA en lugar de escribir cada línea a mano. 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; (5) verificación en capas con lint, build, tests, /code-review y evals en LangSmith, 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; 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 y Constela (networking de eventos por QR con grafo en vivo).
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.