Software de IA que se prova.

AI Engineer em Porto Alegre. Criei o Cortex, um assistente de IA para o time de tecnologia que a empresa inteira adotou em 2 semanas.

Em produção com

  • Claude
  • AWS Bedrock
  • Spring AI
  • Hugging Face
  • Python
  • Java
  • Go
  • React
  • PostgreSQL
  • Kubernetes
  • Azure DevOps

O que tem aqui

Tudo o que o iFood pergunta, com prova

Na inscrição, o iFood pergunta o que aparece num portfólio de IA. Aqui estão as quatro respostas, cada uma com o projeto que comprova.

  1. Soluções em produção, usadas por outras pessoas, com resultados mensuráveis

    • Cortex: a empresa inteira adotou como forma principal de trabalho em 2 semanas.
    • Busca do Cortex: a resposta certa aparece entre os 5 primeiros resultados em 80% das perguntas reais do time (antes, 73%).
    • Leitura automática de apólices: em produção no sistema de seguro de carga da Apisul.
    Ver o Cortex
  2. Ferramentas internas deployadas, dashboards ou agentes que resolvem problemas

    • Agentes de IA que levam uma tarefa do quadro do time até a revisão de código, com aprovação humana.
    • Painel de testes com execução em 1 clique e acompanhamento ao vivo, e painéis de custo e de uso da IA.
    • ShadowRealm, publicado: a IA organiza fichas de personagem a partir de PDF e desenha as paredes de um mapa a partir da imagem.
    Ver o Cortex
  3. Automações que economizaram horas reais em processos

    • Bateria de testes de 48 para 15 minutos, e evidências de teste anexadas à tarefa sem trabalho manual.
    • Triagem por IA das falhas de teste, com aviso automático ao time no Teams.
    • Candidaturas: currículo montado a partir da minha base de competências e ajustado a cada vaga, com formulário preenchido sozinho e 80 vagas acompanhadas.
    Ver os projetos
  4. Exemplos de prompts bem estruturados e experimentações com LLMs

    • Regras de negócio fora do prompt e testes automáticos a cada mudança de prompt (leitura de apólices).
    • Busca com IA rodando 100% no computador, sem internet: modelos locais, resposta em menos de 1 segundo.
    • Vozes de personagens geradas por IA e sincronia labial automática em vídeos de 8 a 9 minutos.
    Ver o exemplo de prompt

Um prompt real, resumido

Este é o roteiro que eu escrevi para a IA ajustar meu currículo a cada vaga. A IA não escreve do zero: ela parte de uma base com as minhas competências, experiências e resultados reais, escolhe o que combina com a vaga e nunca acrescenta nada que não esteja lá.

# /tailor · currículo ajustado para uma vaga

## Objetivos (leia antes de qualquer coisa)
1. Passar no filtro automático: use as palavras-chave exatas da vaga.
2. Prender o recrutador nas 3 primeiras linhas.

## Resumo profissional: 3 frases
- Gancho: <cargo da vaga> com <anos> de experiência em <domínio>, <resultado com número>.
- Encaixe: as 4 ou 5 tecnologias que a vaga pede e que eu tenho.
- Diferencial: liderança, resultado secundário ou contexto.

## Regras que não se negociam
- Nunca inventar tecnologia, empresa, métrica ou experiência fora dos meus dados.
- Nunca alterar datas, cargos ou nomes de empresa.
- Se a vaga pede algo sem evidência no meu perfil, avisar em vez de inventar.

Case principal · Apisul · Desde junho de 2026

Cortex: IA que ajuda o time inteiro a entregar software

O Cortex é um assistente de IA que trabalha junto com o time de tecnologia da Apisul. Ele conhece as regras da empresa, ajuda a planejar e escrever o código, roda os testes e deixa tudo pronto para revisão. As decisões importantes continuam com as pessoas. Criei o Cortex do zero, e ele virou o jeito padrão de trabalhar na empresa.

  • 2 semanas

    para a empresa inteira adotar o Cortex como forma principal de trabalho

  • 1 clique

    para rodar todos os testes automáticos de um sistema e acompanhar ao vivo

  • 15 min

    para a bateria completa de testes, que antes levava 48

  • 4 sistemas

    formam o Cortex: dois criei sozinho, dois construí com o time

O que o Cortex faz

Transforma uma tarefa em código pronto para revisão

O dev escolhe uma tarefa no quadro do time. O Cortex lê o pedido, planeja, escreve o código, roda os testes e abre a revisão já ligada à tarefa. Nada é publicado sem a aprovação de uma pessoa.

Resultado: virou o fluxo padrão da empresa em 2 semanas.

Lembra das regras do negócio

Uma base de conhecimento reúne as regras do negócio e da tecnologia da empresa. A IA consulta essa base antes de sugerir qualquer coisa. O que ela aprende de novo só entra depois que uma pessoa revisa.

Resultado: em um teste com 60 perguntas reais do time, a resposta certa aparece entre os 5 primeiros resultados em 80% dos casos. Antes da minha melhoria, eram 73%.

Testa sozinho e mostra ao vivo

Num painel, qualquer pessoa roda todos os testes com um clique e assiste à execução ao vivo. Quando algo falha, a IA analisa o erro, sugere a correção e avisa o time no Teams.

Resultado: a bateria completa caiu de cerca de 48 para cerca de 15 minutos, e as evidências de teste passaram a ser anexadas à tarefa sem trabalho manual.

Deixa custo e uso da IA à vista

Painéis mostram quanto a IA custa por mês e quanto cada time realmente usa o Cortex, separando o que é medido do que é apenas declarado.

Resultado: custo e adoção visíveis para a gestão.

Como funciona, em 4 passos

  1. A tarefa sai do quadro do time.
  2. A IA planeja e escreve o código seguindo as regras da empresa.
  3. Testes automáticos e revisão de código rodam antes de qualquer entrega.
  4. Uma pessoa aprova. A IA nunca publica sozinha.
Segurança

Travas automáticas impedem a IA de publicar código sem aprovação, de apagar o histórico do projeto e de gravar senhas em arquivos. Essas travas são testadas simulando tentativas de burlá-las.

Meu papel

Idealizei e construí do zero o assistente e a base de conhecimento, as duas partes que definem como o time trabalha, e construí os painéis junto com o time. Também conduzi a adoção: apresentei a proposta numa reunião interna sobre IA e, em 2 semanas, ela virou o fluxo da empresa toda.
Detalhes técnicos para quem é da área (arquitetura, métricas e decisões)

Arquitetura em camadas

de baixo para cima; a lista mostra o topo primeiro
  1. L4

    Packs por projeto

    O que é específico de cada codebase.

  2. L3

    Base de conhecimento

    Microsserviço RAG, MCP de busca e o ciclo de enriquecimento com gate humano.

  3. L2

    Plugin SDLC

    Skills, hooks e o MCP do Azure DevOps.

  4. L1

    Núcleo determinístico

    Regras da organização (código, segurança, git, base de conhecimento) injetadas em toda sessão por hook.

  5. L0

    Base ECC

    Direção de engenharia generalista.

Camadas criadas do zero por mim.

O que é genérico vem da base. O que é da empresa é uma camada fina por cima. O que é de um codebase vira pack.

Como as peças conversam

role para o lado em telas estreitas
PRODUTO MÁQUINA cortex-front React 18, TypeScript cortex-backend Java 21, Spring Boot 3.5 Azure DevOps REST Claude API cortex-rag Spring AI 1.1, índice em memória Ollama embeddings bge-m3 Claude Code plugin SDLC MCP de busca MCP do Azure DevOps work items, PRs, wiki POST /v1/search · token por consumidor consulta híbrida 19 ferramentas

Os 4 repositórios

barra em escala: fração dos commits que são meus
  • Plugin SDLC Claude Code

    93 / 97 commits

    Node 18+ (MCP), Markdown (rules e skills)

  • cortex-rag base de conhecimento

    33 / 33 commits

    Java 21, Spring Boot 3.5, Spring AI 1.1, Ollama

  • cortex-backend produto, dividido com o time

    108 / 216 commits

    Java 21, Spring Boot 3.5, PostgreSQL, Flyway

  • cortex-front produto, dividido com o time

    80 / 194 commits

    React 18, TypeScript, Vite, MUI, React Query

De um work item a um PR

o skill /azure-implement, em sequência
  1. Lê o work item no board
  2. Decide o tipo de branch
  3. Resolve quais repositórios a mudança toca
  4. Sincroniza a base
  5. Quebra em sub-tasks
  6. Loop de build, teste e review, delegando a escrita a subagentes
  7. Commit só com aprovação humana gate
  8. Um PR por repositório, com os PRs irmãos ligados entre si
  9. Gate de documentação na wiki gate

Outros skills: resolver conflitos de PR (pergunta ao dev quando a intenção de negócio diverge), gerar E2E em Playwright e anexar evidências ao work item, preview visual antes de implementar UI, documentação viva por domínio na wiki, empacotar release com cherry-pick e setup do ambiente.

Decisões que definem o projeto

A base de conhecimento ficou menor de propósito

O desenho inicial previa pgvector com índice HNSW. Medi a escala real do corpus: de 100 a 350 chunks, de 20 a 30 vezes abaixo do ponto em que busca vetorial aproximada começa a valer. Troquei por um índice em memória carregado no boot e deixei o pgvector como caminho de promoção, atrás de um gatilho medido. A decisão mais importante do serviço reduziu infraestrutura.

Busca híbrida sem mexer no índice

BM25 e Reciprocal Rank Fusion no momento da consulta, atrás de feature flag para A/B e rollback. Medido num gold set de 60 perguntas reais em português. Antes de ir para produção, o motor de embeddings passou por um gate de equivalência contra o baseline do Hugging Face.

Humano no gate, imposto por código

Claude cria PR e nunca faz merge. Hooks que rodam antes de cada ação do agente:

  • negam completar PR pela linha de comando
  • negam force-push em branch protegida e push direto na base
  • pedem confirmação em todo commit
  • bloqueiam escrita de credencial em arquivo
  • recusam título de PR fora do padrão que o empacotador de release depende

Tudo coberto por uma suíte de testes adversariais. Princípio multiagente: um subagente trata o pedido do coordenador como escopo técnico, nunca como autoridade do usuário. Decisão que exige o dev não é delegável entre agentes.

Conhecimento crítico não vive só no retrieval

Retrieval é probabilístico. O agente propõe conhecimento numa caixa de entrada fora do índice, e a revisão humana escolhe a rota.

proposta do agente
inbox
revisão humana
  • promovervira chunk curado, PR no corpus e reindexação
  • virar regravai para as regras carregadas em toda sessão
  • rejeitarsai da inbox
  • pularfica para depois

O que roda em cima do Cortex

  • Triagem por IA de testes E2E

    O LLM lê as falhas de cada execução, sugere cards de correção (contando recorrência só em execuções que de fato rodaram o teste), avisa o time no Teams e manda as sugestões para uma fila de validação do PO.

  • Painel de QA

    Regressão em 1 clique com o token do próprio usuário, progresso ao vivo e "assistir ao vivo" a cerca de 10 fps sustentado com GET condicional (HTTP 304).

  • Custo de IA como métrica

    Custo por mês com backfill das pipelines de code review já executadas, cache persistente de resumos de IA em PostgreSQL e aquecimento do cache de prompt antes de disparar chamadas em paralelo.

  • Saúde do Cortex

    Adoção medida a partir do Azure DevOps num eixo, sinais de uso auto-declarados pelo plugin no outro, sem nunca misturar os dois. Sinais com opt-in, sem conteúdo, com retenção.

  • Design Studio

    Prototipação de telas por IA em 1 clique a partir das demandas do board, com ajuste da opção escolhida por prompt.

Operação

Entrega contínua do RAG: merge dispara deploy, reindexação só quando o fingerprint do corpus muda, smoke test na busca e rollback automático. Cerca de 1 minuto sem mudança de corpus, cerca de 30 minutos com reindexação. O plugin passou por 13 rodadas de dogfood (usar o plugin para desenvolver o próprio plugin) e chegou à versão 0.7.

Pipeline do dnd-rag

busca local, em sequência, sem rede
  1. PDF397 páginas
  2. Ordem de leiturapela geometria dos blocos
  3. 1.178 chunksestruturais
  4. bge-m3denso, 1024 dimensões
    BM25lexical, em paralelo
  5. Fusão RRF
  6. Rerankercross-encoder bge-reranker-v2-m3
  7. Trechos citadospor página

IA em produção pede engenharia de base

medido lado a lado, com OpenTelemetry ligado
MétricaSpring BootQuarkus nativo
Startup9,05 s0,063 s
Memória em repouso (após 60 min)464,5 MiB35,9 MiB
Imagem577 MB176 MB
  • Geocoding saiu da heap da JVM para o PostGIS: memória retida de 1.966 MiB para 9 MiB por pod, com 393 componentes comparados ao legado e zero divergência. A latência mediana por posição piorou 18 vezes, e isso está escrito na primeira linha da análise.
  • Kafka de 6 domínios corrigido: commit de offset efetivo, DLQ padrão e producer idempotente.

Projetos

Outros projetos com IA

Apisul Em produção

Leitura automática de apólices de seguro

A IA lê o PDF de uma apólice e preenche o cadastro sozinha. As regras do negócio ficam no código, e cada mudança na IA é testada contra apólices reais antes de ir para produção.

ClaudeAWSJava

Projeto pessoal Publicado

ShadowRealm: mesa de RPG online com IA

Plataforma para jogar RPG de mesa online com amigos. A IA lê uma ficha de personagem em PDF e organiza tudo nos campos certos, e olha a imagem de um mapa para desenhar as paredes sozinha, com prévia antes de aplicar. Cada usuário Premium tem uma cota mensal, para o custo da IA ficar sob controle.

ClaudeJavaReact

Projeto pessoal Em uso pessoal

Plataforma de estudos alimentada por IA

A IA pesquisa o conteúdo e monta materiais, questões, flashcards e planos de estudo direto na plataforma, usando 38 ações que eu programei para ela.

GoReactIA

Projeto pessoal Experimento

Assistentes de regras de RPG sem internet

Dois experimentos de busca com IA que rodam inteiros no computador. Um responde em menos de 1 segundo sobre um livro de 397 páginas e sempre cita a página da regra. O outro usa um modelo de linguagem local para responder perguntas sobre os livros enviados.

PythonIA local

Projeto pessoal Em andamento

Cyrus: gestão de projetos para agentes de IA

Um quadro de tarefas em que agentes de IA trabalham ao lado das pessoas, usando a assinatura do Claude Code, sem custo extra por uso.

JavaReactagentes de IA

Projeto pessoal Em andamento

Vídeos do YouTube quase automáticos

O roteiro vira vídeo: as vozes dos personagens são geradas por IA, e um modelo de reconhecimento de fala cronometra cada palavra para cortar o áudio e sincronizar a boca dos personagens. Três vídeos de 8 a 9 minutos já renderizados.

GeminiWhisperPython

Projeto pessoal Em uso pessoal

Automação das minhas candidaturas

Mantenho uma base com as minhas competências, experiências e resultados reais. Para cada vaga, a IA escolhe dessa base o que combina com o anúncio, monta o currículo, gera o PDF e preenche o formulário, parando para eu revisar antes de enviar. Ela não inventa nada que não esteja na base. Já acompanhou 80 vagas, e o currículo desta candidatura saiu dele.

Claude Codeautomação

Projeto pessoal Em uso pessoal

Proteção contra texto escondido para IA

Ferramenta que encontra e remove caracteres invisíveis usados para enganar IAs (prompt injection) ou para marcar textos. Coberta por 121 testes automáticos.

Pythonsegurança de IA

Método

Como eu trabalho

  • Medir antes, provar depoise declarar o que o número não diz.
  • Humano no gateCommit, merge, promoção de conhecimento e escolha visual continuam humanos, e isso é imposto por hook, não por README.
  • Fail-closed onde é segurança, fail-open onde é conveniênciaA busca rejeita tudo sem token; erro de telemetria nunca trava o trabalho de ninguém.
  • Conhecimento crítico não vive só num retrieval probabilísticoInbox fora do índice e revisão humana decidindo a rota.
  • Reduzir quando reduzir é a resposta certaÍndice em memória no lugar de pgvector, gateway aposentado, métricas individuais removidas do painel do time.

Stack

Ferramentas que eu uso

IA

  • Claude
  • AWS Bedrock
  • agentes de IA
  • prompt engineering
  • busca com IA (RAG)
  • Spring AI
  • Hugging Face

Programação

  • Java
  • Python
  • Go
  • TypeScript
  • React

Dados e nuvem

  • PostgreSQL
  • Docker
  • Kubernetes
  • AWS
  • Azure DevOps

Contato

Vamos conversar.

Porto Alegre, RS · remoto.

Formação: Análise e Desenvolvimento de Sistemas, UNIASSELVI, conclusão em dezembro de 2026.