AI Engineer · dados · backend · negócio · LLM no produto
Aberto a vagas de AI Engineer · remoto ou Maringá/PR · falar comigo no LinkedIn
~/ whoamiAI Engineer é quem junta quatro coisas: entende de dado, entende de backend, entende do negócio, e usa isso para colocar LLM dentro do produto de forma eficiente. Modelo é a parte fácil. O que decide se o sistema serve para alguma coisa é o que existe em volta dele.
Abaixo está a evidência de cada um dos quatro, com número. Depois, os projetos.
Finalizando pós-graduação em Ciência de Dados (UniCesumar) e cursando a Formação AI Software Engineer 4.0 (Data Science Academy).
Maringá, Paraná · Brasil
~/ cat pilares/negocio.mdA decisão que muda, não a métrica que sobe. É a diferença entre um modelo que funciona e um sistema que vale dinheiro.
+24%de resultado na carteira de teste, com o mesmo modelo e a mesma AUC. Bastou trocar o corte de 0,50 pelo break-even econômico, que sai de duas constantes de negócio e não olha uma linha do dataset. O corte analítico ganhou do ótimo procurado por varredura, que pegou ruído da amostra.77%do valor fraudado barrado revisando0,11%do tráfego. A mesa de análise revisa um número fixo de alertas por dia, então a pergunta não é qual o corte, é quais transações entram na fila. Ordenar por valor em risco pega menos fraudes e salva mais dinheiro. Um painel de recall registraria essa escolha como piora.- Erro abaixo de
2%na estimativa da base de alunos,499 milprevistos contra509 milrealizados. O número sustenta decisão de planejamento acadêmico na Vitru Educação. - Auditoria de paridade publicada inclusive onde ela reprova: o grupo até 25 anos ficou em
0,767, abaixo da regra dos 4/5. Atributos protegidos ficaram deliberadamente fora das features.
~/ cat pilares/dados.mdO dado que alimenta o sistema, e o contrato que impede ele de apodrecer.
5Mde linhas por 26 colunas em4,8 s, com pico de261 MB. A memória fica plana enquanto o dado cresce 50x. Três camadas de leitura sobre Parquet, com DuckDB e PyArrow.71checks emitidos automaticamente de 26 colunas, com teste de duas proporções, correção de Bonferroni e piso de efeito prático contra alarme falso.- Defeitos ranqueados por impacto na decisão, não por prevalência. O defeito em
7ºpor prevalência sobe para3ºpor impacto, e o4ºinverte exatamente zero decisões. - Integração e rastreabilidade de múltiplos sistemas corporativos em SQL Server e Python, no dia a dia da Vitru Educação.
~/ cat pilares/backend.mdO sistema que serve, com teste, contrato de interface e resiliência.
- FastAPI, React 19 e TypeScript num sistema de otimização em operação, com dois solvers isolados por design: a aba de cenários não consegue sobrescrever a rodada publicada.
pytestem cinco repositórios, CLI empacotada compyproject, SBOM CycloneDX e inventário de licenças de terceiros.- Limitador de taxa próprio e backoff exponencial para 503 e 500, com medição de tokens, latência e custo por chamada. Rodada com erro é descartada, não reportada.
- Docker e pipeline reprodutível de um clone limpo, sem artefato binário versionado.
~/ cat pilares/llm_no_produto.mdLLM aplicado, e medido, que é a metade que a maioria dos projetos pula.
- Recuperação híbrida BM25 e E5 multilíngue, com fusão RRF sobre posição, levou o MRR de
0,361do léxico puro para0,644, e o recall@1 de0,133para0,533. - Em
80%das perguntas o contexto entregue contém norma revogada, num corpus onde44,6%dos normativos já não valem. Nenhuma métrica de similaridade acusa isso. - Saída estruturada com citação obrigatória por afirmação, em campos separados. É o que deixa a auditoria de vigência ser feita por programa, e não por leitura.
- Chunking com propósito de avaliação: segmentar por artigo é o que permite cruzar a citação da resposta com o estado de vigência do dispositivo.
- Tokens, latência e custo medidos por pergunta, com limitador de taxa próprio e backoff exponencial para 503 e 500. Erro transitório do provedor não vira número no relatório.
- Contra alucinação, o conjunto dourado inclui pergunta que o corpus não responde, e a auditoria classifica citação inventada como
inexistente, separada de norma revogada e de artigo revogado. - Gemini em produto self-service que explora dataset, recomenda KPIs e responde em linguagem natural, com fallback que mantém os gráficos de pé quando a API cai.
~/ ls projetos/ --featuredNum corpus de 294 normativos do BACEN sobre Pix, 44,6% estão revogados, e a recuperação entrega norma morta ao modelo em 80% das perguntas. Nenhuma métrica de similaridade acusa isso.
Não é um chatbot sobre regulação. É a medição de um. Recuperação híbrida com fusão RRF, resolução de dispositivos empilhados (o BACEN publica até sete versões do mesmo inciso coladas em sequência) e auditoria de vigência por citação. As duas camadas que sustentam o argumento não usam LLM nenhum.
sentence-transformers · rank-bm25 · RRF · Gemini · 47 testes
O verificador não usa LLM: campo extraído só é aceito se o trecho citado existir literalmente no PDF e o valor parseado bater com ele. É isso que transforma um resultado ruim em informação útil.
Triagem de editais do PNCP, com fila de leitura ordenada por valor esperado sob capacidade finita. No conjunto dourado de 7 editais rotulados à mão, prazo acertou 2: o modelo confunde "abertura da sessão" com "prazo da proposta" mesmo com o prompt proibindo, e a citação correta é justamente o que prova que o erro é de julgamento, não de parsing. Depois da correção de prompt, a resposta errada com confiança virou abstenção com justificativa.
300 editais ingeridos, 96,7% com texto extraível sem OCR, orçamento de custo e timeout aplicado no código, US$ 0,028 por edital e p50 de 12,1 s. O ciclo vermelho para verde foi demonstrado de verdade: reintroduzi uma regressão de propósito, o portão de CI barrou, o PR seguinte corrigiu.
FastAPI · Docker · Gemini · GitHub Actions · 61 testes
Ranqueia defeitos pelo quanto mudam a decisão, não por prevalência, e emite o contrato executável que impede o defeito de voltar. O defeito em 7º lugar por prevalência sobe para 3º por impacto. O 4º inverte exatamente zero decisões.
25x mais rápido e 24x mais econômico em memória que o ydata-profiling, com precisão de 100% e zero falsos positivos em 100 colunas limpas. A margem até o limiar é apertada, e está publicada junto, registrada como limite conhecido.
DuckDB · PyArrow · CLI empacotada
Sistema full-stack de otimização com CP-SAT em operação: validação de entrada, dois solvers deliberadamente isolados (a aba de cenários não consegue sobrescrever a rodada publicada), auditoria por rodada e dashboard React.
Suíte de testes, SBOM CycloneDX e inventário de licenças de terceiros. É a prova de que entrego sistema, não notebook.
OR-Tools (CP-SAT) · FastAPI · React 19 · TypeScript · SBOM
Trocar o corte de 0,50 pelo break-even econômico rendeu +24,0% na carteira de teste, com o mesmo modelo e a mesma AUC. O corte ótimo sai de duas constantes de negócio e não olha uma linha do dataset. Ainda assim ganhou do ótimo procurado por varredura, que pegou ruído da amostra.
Reason codes por TreeSHAP exato, atributos protegidos fora das features e auditoria de paridade publicada inclusive onde ela reprova, com 0,767 no grupo até 25 anos, abaixo da regra dos 4/5.
LightGBM · TreeSHAP · PSI/CSI · 16 testes
Uma regra de duas linhas, sem modelo nenhum, pega 97,70% das fraudes do PaySim. Todo AUC de 0,99 publicado sobre esse dataset está reproduzindo essa regra com mais passos.
Audita o benchmark e reconstrói sem os atalhos: a PR-AUC honesta cai de 1,000 para 0,406 enquanto a ROC mal se move. A decisão vira triagem sob capacidade finita, onde ordenar por valor em risco pega menos fraudes e salva mais dinheiro.
LightGBM · métricas de evento raro · 18 testes
BI self-service em que o Gemini explora o dataset, recomenda KPIs, gera 30+ tipos de gráfico e responde perguntas de negócio em linguagem natural. Tem modo de fallback que mantém os gráficos de pé quando a API cai.
Gemini · Streamlit · Plotly
~/ cat principios.txtO que se repete nos projetos acima não é o stack:
- A geração do RAG não tem métrica publicada, porque a cota gratuita corrompeu a bateria. Métrica calculada sobre resposta que nunca chegou parece resultado, e é pior que métrica nenhuma.
- O contrato de validação reprovava a base que o gerou. O bug virou invariante:
emitagora se recusa a gravar contrato que não passa na própria referência. - O alarme de drift não disparou quando a aprovação caiu
7 pontos. Está publicado assim, com a conclusão de que PSI agregado sobre o escore é pouco sensível. - A hipótese da conta laranja que acumula vítimas não se confirmou. O sinal real apontava para o lado oposto.
Sistema que não sabe dizer quando está errado não está pronto, e é essa camada que eu construo.
~/ cat skills.txt~/ contact --openBusco vagas de AI Engineer.
~/ obrigado pela visita · Maringá, PR
