Inteligência contra fraudes
Aegis
Uma plataforma de investigação de fraudes que projetei, construí e coloquei em produção sozinho — das regras de detecção ao WebGL que as desenha.
Uma operadora brasileira de apostas precisava que seus analistas parassem de remontar o histórico de cada jogador na mão. Construí tudo, com assistência de IA: os fluxos de investigação, o motor de detecção, a API, os pipelines de dados, o modelo de segurança, a implantação e a visualização em WebGL que desenha 25.000 jogadores de uma vez. O Aegis leva o analista do sinal até a evidência por trás dele sem sair da tela.
- Papel
- Desenvolvedor de Software
- Período
- Abril de 2026–presente
- Estado
- Em produção
- Código-fonte
- Privado
A sequência de abertura do Aegis — 9 segundos, sem áudio
Toda investigação começava do zero
Um analista que quisesse entender uma conta suspeita tinha que montar a história na mão. Identidade e dados cadastrais ficavam no banco operacional. Depósitos, saques, apostas, saldos e eventos de jogo se acumulavam no lakehouse analítico. A história do jogador existia, mas em pedaços, espalhada por dois sistemas que nunca foram feitos para serem lidos juntos.
Eu também queria que a resposta aguentasse questionamento. Uma pontuação sozinha não serve para quem precisa justificar o bloqueio de uma conta, então todo achado do Aegis diz qual regra disparou e mostra a evidência que a disparou.
O caminho que uma requisição faz
O Aegis é uma aplicação React estática conversando com um serviço FastAPI focado em leitura, e esse serviço lê um schema PostgreSQL que desenhei para investigação. O lakehouse fica fora do caminho da requisição. Esse limite compra um caminho de leitura previsível e mantém o acesso à evidência sensível em um lugar só, sob meu controle.
Jobs agendados trazem perfis, carteiras, transações, saldos horários e dados de visualização do Databricks para o PostgreSQL e emendam direto nas varreduras de detecção, de hora em hora. O Redis atende primeiras leituras selecionadas: os jobs escrevem, a interface só lê.
What a request touches
- Investigator UIReact single-page app, served as a static bundle
- FastAPI serviceRead-focused JSON API, and the only authorization authority
- Curated PostgreSQL schemaWhat the product reads for profiles, findings, and history
- Databricks lakehouseAnalytical source, read on a cache miss
- Redis cacheOptional, fronts the busiest reads
What keeps that data current
- Databricks lakehouseProfiles, wallets, transactions, and hourly balances
- Scheduled sync and detection jobsSync, then detection scans, chained hourly
- PostgreSQL and cache refreshJobs write; the interface only reads

01 — Fiz dele um produto separado
Eu podia ter pendurado telas de fraude em um sistema que já existia, e ninguém teria reclamado. Em vez disso, construí o Aegis como produto próprio: schema próprio, API própria, implantação própria, ciclo de release próprio.
Duas coisas me levaram a isso. Fluxo de fraude muda toda vez que aparece um padrão novo, e eu queria entregar essas mudanças sem encostar em mais nada. E a evidência por trás de um achado — documentos, histórico de transações — pede um modelo de autorização mais apertado do que o usuário interno médio deveria herdar.
Essa decisão me entregou toda a superfície de segurança para cuidar: sessões, proteção contra CSRF, autenticação multifator, hashing Argon2, permissões, credenciais restritas para os jobs, auditoria de segurança. Assumi. A API é a única autoridade de autorização.
02 — Parei de consultar o lakehouse a cada clique
Os dados de evento vivem no lakehouse, e apontar a interface direto para lá teria sido o caminho mais rápido até um dashboard funcionando. Também teria amarrado cada passo dentro da timeline de um jogador à latência do warehouse e ao medidor de cobrança.
Então o caminho dos dados se divide. Jobs agendados copiam o que o produto precisa para o schema curado, um pipeline horário roda sincronização e depois varredura, e o Redis absorve as leituras que se repetem.
O Aegis, portanto, lê dados recentes em vez de dados ao vivo, e essa escolha foi deliberada. O comportamento que estou detectando — estruturação, velocidade, documento repetido — se desenvolve ao longo de horas e dias. Frescor que eu não precisava não valia a latência que eu teria pago por ele.
03 — Segui o caminho real do analista
Um dashboard te diz que um número está alto. É aí que o trabalho dele acaba e o do analista começa, que é exatamente o lugar errado de parar. O Aegis segue o caminho que a pessoa percorre de verdade: uma fila de triagem agrupada por regra, que abre em uma visão do jogador reunindo perfil, saldos, transações, gameplay, achados em aberto e relatórios gerados no mesmo lugar.
Todo achado carrega sua regra, categoria, nível de confiança e a evidência que o disparou. As regras rodam em shadow mode por padrão e são promovidas para o modo ativo de propósito, nunca por acidente. Os achados que o analista está trabalhando ficam em uma lista local no navegador.
E tem a Constelação de Risco. Desenho a população pontuada inteira como um campo de pontos na GPU, com cor e brilho para risco e posição para puxar os jogadores sinalizados para fora da multidão. Começou como uma pergunta: dá para ler 25.000 jogadores de uma vez? Acabou que agrupamento e ponto fora da curva são muito mais fáceis de enxergar do que de consultar.


04 — Fiz uma ferramenta interna que vale olhar
Ferramenta interna tem cara de ferramenta interna porque alguém decidiu que ninguém ia se importar. Eu me importei. O Aegis ganhou um emblema de escudo e íris, um console escuro e uma abertura cinematográfica, e essa identidade se sustenta do primeiro quadro até o ambiente de investigação.
Modelei e animei o emblema no Blender, exportei em FBX, montei e iluminei a cena no Unreal Engine 5, renderizei uma sequência de imagens em 4K e finalizei o filme no DaVinci Resolve. Não é uma coisa normal de se fazer para um console de fraude. Eu quis descobrir se conseguia.
Nada disso atrapalha o trabalho. A sequência roda uma vez por sessão e falha para o lado seguro: se a mídia travar, não puder ser reproduzida ou a pessoa preferir menos movimento, o console simplesmente está lá.
O que eu construí
O Aegis é meu de ponta a ponta. O produto e o design de interação. A aplicação React, o serviço FastAPI, autenticação, permissões. O modelo PostgreSQL, a sincronização com o lakehouse, o pipeline horário, as regras de detecção, a pontuação, os relatórios. Os testes, a implantação, a Constelação de Risco em WebGL e o filme de identidade.
Trabalho AI-native e não tenho pudor nenhum com isso: os agentes aceleraram scaffolding, refatoração, geração de testes e revisão. Toda decisão de arquitetura, todo trade-off e todo julgamento sobre se algo estava realmente bom o suficiente continuaram meus.
O que foi entregue
Coloquei o Aegis em produção. Oito regras configuráveis nas categorias de pagamentos, gameplay, identidade e impacto; execução em shadow mode e em modo ativo; pontuação e achados explicáveis; triagem de alertas; investigação de jogadores; lista de trabalho local no navegador; administração de regras; análise geográfica; Constelação de Risco; auditoria de segurança; e relatórios em HTML, Markdown ou PDF.

Com o que foi construído
React, Vite e React Router entregam a interface. O FastAPI expõe a API de leitura. O PostgreSQL é dono do modelo investigativo, o Databricks segue como fonte analítica e o Redis sustenta leituras selecionadas a partir de cache. Sessões opacas, Argon2, TOTP, proteção contra CSRF e permissões aplicadas pela API seguram o limite de segurança.
Three.js e um decodificador de pontos em Web Worker movem a Constelação de Risco. deck.gl e MapLibre cuidam da análise geográfica. O WeasyPrint gera os relatórios. pytest e Jest cobrem os caminhos de backend e de frontend. Blender, Unreal Engine 5 e DaVinci Resolve produziram o filme de identidade.