Sistemas LLM e IA
Qualidade de modelo tratada como problema de engenharia. LangChain e LlamaIndex em nível de exposição; o trabalho com LLMs em produção é avaliação e design de prompts.
Mais de 5 anos entregando software em produção em fintech corporativa, ML aplicado e APIs de backend. Construo sistemas de LLM e ML com o mesmo padrão de confiabilidade que aprendi no setor bancário.
Aberto a vagas de Engenharia de IA/ML e Backend em Python, remoto ou híbrido
Um portfólio feito para mostrar como eu penso, construo e opero software com IA.
Sou engenheiro de software e machine learning com mais de 5 anos de experiência em fintech corporativa, ML aplicado e plataformas de backend/API. Comecei em software bancário, onde confiabilidade, segurança e qualidade de release não eram negociáveis, e levei esse padrão para o meu trabalho com ML e LLMs.
Na Anyone AI conduzi soluções de ML de ponta a ponta: um modelo de risco de crédito sobre mais de 350.000 registros, um serviço de classificação com CNN empacotado como API dockerizada na AWS e análise SQL de operações de e-commerce na América Latina. Na Scale AI e na Revelo trabalhei o outro lado do ciclo: avaliando Python e SQL gerados por modelos segundo critérios explícitos de correção e raciocínio, que foi onde aprendi o quanto da qualidade de um LLM é, na verdade, design de avaliação.
Ao lado da engenharia, sou responsável pelo produto na Altamira Tech Labs: cofundei o Altamira GTM e o Out!, e em ambos fiz o trabalho de product owner — descoberta, jornadas de usuário, escopo do MVP, requisitos, priorização e as decisões de arquitetura — antes da construção e em paralelo a ela. O papel para o qual estou caminhando é o de Product Manager / Product Owner técnico: próximo o bastante de engenheiros e de agentes de IA para ser útil, e responsável pelo problema, pelos requisitos e pela definição de pronto.
Tenho uma Especialização em Machine Learning e Data Science pela Universidad Nacional de Colombia e sou Engenheiro Biomédico (B.Sc.) pela Universidad de los Andes. Trabalho em espanhol (nativo) e inglês (C1).
Organizadas de propósito em torno de sistemas de IA e backend em Python.
Qualidade de modelo tratada como problema de engenharia. LangChain e LlamaIndex em nível de exposição; o trabalho com LLMs em produção é avaliação e design de prompts.
Do dataset bruto ao serviço implantado.
Serviços construídos para serem integrados, testados e mantidos.
Apps bancários nativos em produção, mais entrega multiplataforma para clientes.
Publicar em ambientes sensíveis a confiabilidade.
Problemas ambíguos transformados em produto delimitado e construível. Certificação CAPM; o trabalho como product owner está no Altamira GTM e no Out!.
Transformar um roadmap em uma entrega com prazos e dependências explícitas.
Projetar o trabalho que o usuário contrata do produto, não a tela.
Onde o trade-off fica escrito antes de o código ser escrito.
Do software bancário corporativo ao ML aplicado e à avaliação 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 destes cards é uma que o conteúdo publicado consegue sustentar.
Definição de produto e arquitetura para uma plataforma de GTM e RevOps nativa de IA, cofundada na Altamira Tech Labs. Times comerciais acumulam sinais fragmentados de clientes e vendas e mesmo assim decidem por intuição, então especifiquei o ciclo que fecha isso: captação, análise, recomendação de IA, aprovação humana, execução e medição. Como product owner transformei uma oportunidade de automação ambígua em jornadas de usuário, requisitos de funcionalidade, histórias de usuário com critérios de aceite, um roadmap de MVP em etapas e a fronteira de arquitetura entre a orquestração determinística de fluxos e o comportamento probabilístico do LLM. Portões de aprovação, explicabilidade e estados de exceção são requisitos de primeira classe, então a IA acelera a execução enquanto a decisão de negócio permanece com o operador.
Produto de consumo que transforma o “a gente devia fazer alguma coisa” em um plano de verdade. Cofundei e desenhei o Out! em torno do atrito entre querer socializar e efetivamente organizar algo, estruturando tudo como uma única jornada — intenção, descoberta personalizada, plano no mundo real — e não como um feed de funcionalidades soltas. As recomendações pesam humor, orçamento, localização, tempo, interesses, lugares e quem está livre, e cada uma explica por que faz sentido. O problema de design é a passagem de bastão: um sistema de recomendação probabilístico precisa se resolver em um estado determinístico de grupo, plano e coordenação que cobre chat, enquetes, pontos de encontro e pagamentos compartilhados. Delimitado primeiro a esse caminho crítico, deixando as funções de rede social para depois.
O assistente desta página. Um motor de intenções determinístico e trilíngue responde em inglês, espanhol ou português do Brasil estritamente a partir do arquivo canônico de conteúdo do portfólio, sem LLM e sem serviço externo de IA em nenhum ponto do caminho da requisição, então ele não pode inventar um fato sobre mim. Mostra design do modelo de conteúdo, normalização de texto e correspondência de intenções, degradação graciosa quando a API está indisponível, e uma suíte de testes que falha se uma tradução sumir ou se uma métrica publicada mudar de sentido entre idiomas.
Um assistente de compras de supermercado que envolve um LLM em barreiras transacionais determinísticas, de modo que um ID de produto alucinado nunca consegue chegar ao carrinho do cliente. A engenharia está na fronteira: a resolução contra o catálogo, a autorização de ferramentas, a severidade das reclamações e um portão de aprovação humana persistido são decididos pelo código, então a garantia se mantém independentemente do que o modelo emitir. Construí a recuperação híbrida de BM25 mais densa fundida por RRF sobre 49.678 produtos, um laço de agente limitado com tetos de tokens e de tempo real, uma fronteira de LLM agnóstica de provedor com retentativas e contabilidade de custo por chamada, e duas suítes de avaliação que barram a CI.
RAG em espanhol que trata a recusa em responder como uma função e não como uma falha. A abstenção é uma função pura do escore de recuperação em Python determinístico, e toda resposta gerada cujas citações não resolvam para evidência que o modelo realmente viu é descartada em favor do trecho literal com seu número de página. Cada limiar é calibrado por varreduras medidas e depois testado sobre 352 páginas de legislação espanhola real, onde a recuperação melhorou mas a abstenção se degradou até os limiares serem varridos de novo, então o desvio de calibração agora é detectado na sonda de readiness. Cobre avaliação de recuperação, defesa contra injeção de prompts, saídas estruturadas e design de serviços FastAPI.
Uma interface em linguagem natural sobre um data warehouse onde o modelo escolhe a pergunta e nunca produz um número. Um LLM escreve o SQL contra um catálogo de 47 documentos gerado a partir do próprio código do warehouse; uma política determinística faz o parsing desse SQL para uma AST e exige acesso somente leitura, uma lista de permissões de tabelas derivada da recuperação e um LIMIT limitado; depois o warehouse calcula os números, e qualquer valor citado que não apareça nas linhas retornadas é suprimido. Um roteador de função pura resolve a maior parte da triagem de avaliações com código que já existia, então o modelo só roda onde ganha seu lugar. Modelagem em esquema estrela sobre o dataset de e-commerce brasileiro Olist, contratos de métricas que definem cada número publicado uma única vez, e três suítes de avaliação determinísticas que barram a CI.
Um assistente de busca de emprego que não pode recomendar uma vaga que não existe. Cada recomendação carrega um id de vaga que o modelo precisa copiar do contexto recuperado, então cruzar esses ids com o que a recuperação realmente devolveu transforma a alucinação de um julgamento subjetivo em um teste de pertinência a um conjunto, e uma resposta cuja citação não resolve é retida em vez de exibida. Recuperação híbrida densa e BM25 fundida por RRF e consolidada de fragmentos de volta a vagas completas; um laço de agente apenas para a única forma de pedido que precisa dele, limitado em iterações, tempo real, chamadas de ferramentas e custo. A avaliação de recuperação de 38 consultas barra cada merge e já revogou três das minhas próprias decisões de projeto, incluindo um reranking que construí e depois desativei após medi-lo.
Estratificação do risco de hospitalização para um programa de cuidados que só consegue contatar um quinto da sua população, onde o resultado herdado acabou sendo vazamento de informação. A auditoria encontrou 14 colunas contaminadas pelo desfecho, uma delas o implica com certeza, e ao removê-las o ROC-AUC com validação cruzada passou de 0,83 para 0,73. Construí uma partição agrupada por domicílio para que cônjuges não fiquem divididos entre partições, calibração isotônica porque o produto exibe uma probabilidade, e um segundo modelo sobre os 13 campos que o formulário de entrada realmente fornece, depois de os testes de integração flagrarem que o modelo de 248 features pontuava quase igual três pessoas muito diferentes. Demonstra disciplina de avaliação acima da caça a métricas, com oito ADRs e uma diferença por sexo publicada que ainda não resolvi.
Ranking de propensão anterior à ligação para uma campanha bancária, construído para que o número reportado seja o número que sobreviveria à implantação. O resultado lisonjeiro é 0,8116 de ROC-AUC agrupado com partição aleatória; ordenar clientes dentro de um mesmo mês de contato dá 0,5865, e rastreei essa diferença de +0,2251 até variáveis macro que codificam o calendário. Por isso a seleção de modelo roda sobre um backtest de origem móvel de nove dobras, o limiar de decisão é congelado na validação antes de a janela de teste ser tocada, e a duração posterior à ligação é excluída como vazamento. Inclui uma CLI em Typer, um caminho validado de inferência em lote que produz uma lista de ligações limitada por capacidade, um model card e oito ADRs.
Modelo supervisionado de risco de inadimplência sobre um dataset de crédito tipo Home Credit com mais de 350.000 registros, construído na Anyone AI. Assumi o caminho da limpeza e da análise exploratória até a preparação de features, e depois comparei Decision Tree, XGBoost e LightGBM por qualidade de ranking, alcançando ROC-AUC acima de 0,72 com gradient boosting. O critério em exibição é tratar um problema de crédito com classes desbalanceadas como uma tarefa de ranking e não como uma métrica de acurácia, com atenção à validação do modelo e à reprodutibilidade.
Classificador de imagens com CNN para marca e modelo de veículos com 82% de acurácia, construído na Anyone AI. Levado da preparação e do aumento de dados ao treinamento, à avaliação e ao empacotamento como serviço API na AWS com Docker. Demonstra o caminho de deep learning até produção: uma estratégia de aumento de dados para uma tarefa visual de granularidade fina, e um modelo treinado entregue atrás de uma interface HTTP em um contêiner reproduzível em vez de ficar num notebook.
Avaliação com humano no laço de Python e SQL gerados por modelos na Scale AI e na Revelo. Pontuei correção, aderência às instruções e qualidade do raciocínio contra rubricas explícitas, escrevi prompts técnicos e critérios de avaliação para tarefas de geração de código, e documentei padrões de falha e casos limite que alimentam a melhoria baseada em RLHF. Este é o critério por trás das suítes de avaliação dos meus próprios sistemas: saber o que vale medir em um modelo, e por que uma resposta confiante não é o mesmo que uma resposta correta.
Fluxo seguro de saque sem cartão em caixas eletrônicos para o Banco de la Nación, entregue na Sophos Solutions dentro de projetos de banco LATAM com Backbase. Ajudei a projetar e implementar o fluxo que conecta o app de banco móvel às APIs do Backbase e à infraestrutura core bancária legada, sob as exigências de confiabilidade, segurança e conformidade do setor financeiro regulado. Experiência entregando funcionalidades de movimentação de dinheiro onde um defeito é um incidente e não um relato de bug, e onde integrar com um core legado é a maior parte do problema. Trabalho para cliente: o código não é público.
Investigação com SQL de dados de receita e entregas sobre um grande dataset de e-commerce na América Latina, na Anyone AI. Escrevi as consultas e a análise que revelaram padrões operacionais, atrasos de entrega e tendências de receita, e depois empacotei os achados para revisão de stakeholders. Demonstra SQL analítico sobre um dataset relacional real junto com a outra metade do trabalho de dados: transformar o resultado de uma consulta em algo sobre o qual um leitor de negócio possa agir.
Certificações profissionais e programas focados em IA, machine learning, cloud, dados, fintech e gestão 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 engenharia de IA/ML, backend em Python, sistemas LLM ou colaboração de produto, fale comigo pelos canais abaixo.