Sistemas LLM e IA
La calidad del modelo tratada como problema de ingeniería. LangChain y LlamaIndex a nivel de exposición; el trabajo con LLMs en producción es evaluación y diseño de prompts.
Más de 5 años entregando software en producción en fintech empresarial, ML aplicado y APIs backend. Construyo sistemas de LLM y ML con el mismo estándar de confiabilidad que aprendí en banca.
Abierto a roles de Ingeniería de IA/ML y Backend en Python, remoto o híbrido
Un portafolio hecho para mostrar cómo pienso, construyo y opero software con IA.
Soy ingeniero de software y machine learning con más de 5 años de experiencia en fintech empresarial, ML aplicado y plataformas backend/API. Empecé en software bancario, donde la confiabilidad, la seguridad y la calidad de release no eran negociables, y trasladé ese estándar a mi trabajo con ML y LLMs.
En Anyone AI llevé soluciones de ML de punta a punta: un modelo de riesgo crediticio sobre más de 350.000 registros, un servicio de clasificación con CNN empaquetado como API dockerizada en AWS y análisis SQL de operaciones de e-commerce en LATAM. En Scale AI y Revelo trabajé el otro lado del ciclo: puntuar Python y SQL generados por modelos según criterios explícitos de exactitud y razonamiento, que es donde aprendí cuánto de la calidad de un LLM es en realidad diseño de evaluación.
Junto con la ingeniería, me hago cargo del producto en Altamira Tech Labs: cofundé Altamira GTM y Out!, y en ambos hice el trabajo de product owner —descubrimiento, recorridos de usuario, alcance del MVP, requisitos, priorización y las decisiones de arquitectura— antes de la construcción y en paralelo a ella. El rol hacia el que avanzo es el de Product Manager / Product Owner técnico: lo bastante cerca de los ingenieros y de los agentes de IA como para ser útil, y responsable del problema, de los requisitos y de la definición de terminado.
Tengo una Especialización en Machine Learning y Data Science de la Universidad Nacional de Colombia y soy Ingeniero Biomédico (B.Sc.) de la Universidad de los Andes. Trabajo en español (nativo) e inglés (C1).
Organizadas a propósito alrededor de sistemas de IA y backend en Python.
La calidad del modelo tratada como problema de ingeniería. LangChain y LlamaIndex a nivel de exposición; el trabajo con LLMs en producción es evaluación y diseño de prompts.
Del dataset crudo al servicio desplegado.
Servicios construidos para integrarse, probarse y mantenerse.
Apps bancarias nativas en producción, más entrega multiplataforma para clientes.
Desplegar en entornos sensibles a la confiabilidad.
Problemas ambiguos convertidos en producto acotado y construible. Certificación CAPM; el trabajo como product owner está en Altamira GTM y en Out!.
Convertir un roadmap en una entrega con fechas y dependencias explícitas.
Diseñar el trabajo que el usuario le encarga al producto, no la pantalla.
Donde la decisión de compromiso queda escrita antes que el código.
Del software bancario empresarial al ML aplicado y la evaluación de LLMs.
Altamira Tech Labs · Remote
Revelo · Remote
Anyone AI · Remote / Project-Based
Scale AI · Remote
Sophos Solutions — Backbase LATAM banking engagements · Colombia / Mexico · Remote
Ikarosoft Technology · Cali, Colombia
Cada métrica de estas tarjetas es una que el contenido publicado puede respaldar.
Definición de producto y arquitectura para una plataforma de GTM y RevOps nativa de IA, cofundada en Altamira Tech Labs. Los equipos comerciales acumulan señales fragmentadas de clientes y ventas y aun así deciden por intuición, así que especifiqué el ciclo que lo cierra: ingesta, análisis, recomendación de IA, aprobación humana, ejecución y medición. Como product owner convertí una oportunidad de automatización ambigua en recorridos de usuario, requisitos de funcionalidad, historias de usuario con criterios de aceptación, un roadmap de MVP por etapas y la frontera de arquitectura entre la orquestación determinista de flujos y el comportamiento probabilístico del LLM. Las compuertas de aprobación, la explicabilidad y los estados de excepción son requisitos de primer orden, así que la IA acelera la ejecución mientras la decisión de negocio queda en manos del operador.
Producto de consumo que convierte el «deberíamos hacer algo» en un plan real. Cofundé y diseñé Out! alrededor de la fricción entre querer socializar y llegar a organizar algo, estructurándolo como un solo recorrido —intención, descubrimiento personalizado, plan en el mundo real— y no como un muro de funcionalidades sueltas. Las recomendaciones pesan ánimo, presupuesto, ubicación, tiempo, intereses, lugares y quién está libre, y cada una explica por qué encaja. El problema de diseño es el traspaso: un sistema de recomendación probabilístico tiene que resolverse en un estado determinista de grupo, plan y coordinación que cubre chat, encuestas, puntos de encuentro y pagos compartidos. Acotado primero a esa ruta crítica, dejando para después las funciones de red social.
El asistente de esta página. Un motor de intenciones determinista y trilingüe responde en inglés, español o portugués de Brasil estrictamente desde el archivo canónico de contenido del portafolio, sin LLM ni servicio externo de IA en ninguna parte de la ruta de la petición, así que no puede inventar un dato sobre mí. Muestra diseño del modelo de contenido, normalización de texto y coincidencia de intenciones, degradación elegante cuando la API no está disponible, y una suite de tests que falla si falta una traducción o si una métrica publicada cambia de significado entre idiomas.
Un asistente de compras de supermercado que envuelve un LLM en barreras transaccionales deterministas, de modo que un ID de producto alucinado nunca puede llegar al carrito del cliente. La ingeniería está en la frontera: la resolución contra el catálogo, la autorización de herramientas, la severidad de las quejas y una compuerta de aprobación humana persistida las decide el código, así que la garantía se sostiene sin importar lo que emita el modelo. Construí la recuperación híbrida de BM25 más densa fusionada con RRF sobre 49.678 productos, un bucle de agente acotado con techos de tokens y de tiempo real, una frontera de LLM agnóstica del proveedor con reintentos y contabilidad de coste por llamada, y dos suites de evaluación que bloquean la CI.
RAG en español que trata la negativa a responder como una función y no como un fallo. La abstención es una función pura del puntaje de recuperación en Python determinista, y toda respuesta generada cuyas citas no resuelvan a evidencia que el modelo realmente vio se descarta en favor del pasaje literal con su número de página. Cada umbral se calibra con barridos medidos y luego se somete a prueba sobre 352 páginas de legislación española real, donde la recuperación mejoró pero la abstención se degradó hasta volver a barrer los umbrales, así que la deriva de calibración ahora se detecta en la sonda de readiness. Cubre evaluación de recuperación, defensa ante inyección de prompts, salidas estructuradas y diseño de servicios FastAPI.
Una interfaz en lenguaje natural sobre un data warehouse donde el modelo elige la pregunta y nunca produce un número. Un LLM escribe el SQL contra un catálogo de 47 documentos generado desde el propio código del warehouse; una política determinista parsea ese SQL a un AST y exige acceso de solo lectura, una lista blanca de tablas derivada de la recuperación y un LIMIT acotado; luego el warehouse calcula las cifras, y cualquier número citado que no aparezca en las filas devueltas se suprime. Un enrutador de función pura resuelve la mayor parte del triage de reseñas con código que ya existía, así que el modelo solo corre donde se gana su lugar. Modelado en esquema estrella sobre el dataset de e-commerce brasileño Olist, contratos de métricas que definen cada número publicado una sola vez, y tres suites de evaluación deterministas que bloquean la CI.
Un asistente de búsqueda de empleo que no puede recomendar un trabajo que no existe. Cada recomendación lleva un id de vacante que el modelo debe copiar del contexto recuperado, así que intersectar esos ids con lo que la recuperación realmente devolvió convierte la alucinación de un juicio subjetivo en una prueba de pertenencia a un conjunto, y una respuesta cuya cita no resuelve se retiene en vez de mostrarse. Recuperación híbrida densa y BM25 fusionada con RRF y consolidada de fragmentos de vuelta a vacantes completas; un bucle de agente solo para la única forma de petición que lo necesita, acotado en iteraciones, tiempo real, llamadas a herramientas y coste. La evaluación de recuperación de 38 consultas bloquea cada merge y ya ha revocado tres de mis propias decisiones de diseño, incluido un reranking que construí y luego desactivé tras medirlo.
Estratificación del riesgo de hospitalización para un programa de cuidados que solo puede contactar a una quinta parte de su población, donde el resultado heredado resultó ser fuga de información. La auditoría encontró 14 columnas contaminadas por el desenlace, una de ellas lo implica con certeza, y al quitarlas el ROC-AUC con validación cruzada pasó de 0,83 a 0,73. Construí una partición agrupada por hogar para que los cónyuges no queden repartidos entre particiones, calibración isotónica porque el producto muestra una probabilidad, y un segundo modelo sobre los 13 campos que el formulario de ingreso realmente entrega, después de que las pruebas de integración detectaran que el modelo de 248 features puntuaba casi idéntico a tres personas muy distintas. Demuestra disciplina de evaluación por encima de la persecución de métricas, con ocho ADRs y una brecha por sexo publicada que no he resuelto.
Ranking de propensión previo a la llamada para una campaña bancaria, construido para que el número reportado sea el número que sobreviviría al despliegue. El resultado halagador es 0,8116 de ROC-AUC agrupado con partición aleatoria; rankear clientes dentro de un mismo mes de contacto da 0,5865, y rastreé esa brecha de +0,2251 hasta variables macro que codifican el calendario. Por eso la selección de modelo corre sobre un backtest de origen rodante de nueve pliegues, el umbral de decisión se congela en validación antes de tocar la ventana de prueba, y la duración posterior a la llamada se excluye por fuga. Incluye una CLI en Typer, una ruta validada de inferencia por lotes que produce una lista de llamadas acotada por capacidad, un model card y ocho ADRs.
Modelo supervisado de riesgo de impago sobre un dataset de crédito tipo Home Credit de más de 350.000 registros, construido en Anyone AI. Me hice cargo del camino desde la limpieza y el análisis exploratorio hasta la preparación de features, y luego comparé Decision Tree, XGBoost y LightGBM por calidad de ranking, alcanzando un ROC-AUC superior a 0,72 con gradient boosting. El criterio que se ve es tratar un problema de crédito con clases desbalanceadas como una tarea de ranking y no como una métrica de exactitud, con atención a la validación del modelo y a la reproducibilidad.
Clasificador de imágenes con CNN para marca y modelo de vehículos con 82% de exactitud, construido en Anyone AI. Llevado desde la preparación y el aumento de datos hasta el entrenamiento, la evaluación y el empaquetado como servicio API en AWS con Docker. Demuestra el camino de deep learning a producción: una estrategia de aumento de datos para una tarea visual de grano fino, y un modelo entrenado desplegado tras una interfaz HTTP en un contenedor reproducible en vez de quedarse en un notebook.
Evaluación con humano en el bucle de Python y SQL generados por modelos en Scale AI y Revelo. Puntué corrección, adherencia a las instrucciones y calidad del razonamiento contra rúbricas explícitas, redacté prompts técnicos y criterios de evaluación para tareas de generación de código, y documenté patrones de fallo y casos límite que alimentan la mejora basada en RLHF. Este es el criterio detrás de las suites de evaluación de mis propios sistemas: saber qué vale la pena medir de un modelo, y por qué una respuesta segura no es lo mismo que una respuesta correcta.
Flujo seguro de retiro sin tarjeta en cajeros para el Banco de la Nación, entregado en Sophos Solutions dentro de proyectos de banca LATAM con Backbase. Ayudé a diseñar e implementar el flujo que conecta la app de banca móvil con las APIs de Backbase y la infraestructura core bancaria heredada, bajo las exigencias de fiabilidad, seguridad y cumplimiento de la banca regulada. Experiencia entregando funcionalidades de movimiento de dinero donde un defecto es un incidente y no un reporte de bug, y donde integrarse con un core heredado es la mayor parte del problema. Trabajo para cliente: el código no es público.
Investigación con SQL de datos de ingresos y entregas sobre un gran dataset de e-commerce en LATAM, en Anyone AI. Escribí las consultas y el análisis que revelaron patrones operativos, retrasos de entrega y tendencias de ingresos, y luego empaqueté los hallazgos para revisión de stakeholders. Demuestra SQL analítico sobre un dataset relacional real junto con la otra mitad del trabajo de datos: convertir el resultado de una consulta en algo sobre lo que un lector de negocio pueda actuar.
Certificaciones profesionales y programas enfocados en IA, machine learning, cloud, datos, fintech y gestión de entregas.
EPAM
EPAM
Corporación Universitaria de Cataluña
Corporación Universitaria de Cataluña
Corporación Universitaria de Cataluña
Anyone AI
Anyone AI
Anyone AI
Project Management Institute
Data Science for All by Correlation One
Acámica
Universitat Autònoma de Barcelona
IBM
University of California San Diego
Universidad del Rosario
Tecnológico de Monterrey
Tecnológico de Monterrey
Para ingeniería de IA/ML, backend en Python, sistemas LLM o colaboración de producto, escríbeme por los canales de abajo.