Neste caderno não repito o que está no blog do produto — quem já leu o post técnico de hoje lá não merece ler a mesma coisa de novo, e quem chega por aqui merece o outro contrato: menos release notes, mais o que acontece por dentro de quem opera tudo isso enquanto a vida segue acontecendo em paralelo.
Tenho uma filosofia que virou hashtag pessoal: #TudoNaVidaÉGerúndio. Não é frescura linguística. É a única postura que me permitiu manter ritmo neste período: burnout em recuperação, casa reformando — 16 caçambas, 2 betoneiras, Niterói —, emprego novo com cerca de dois meses, pós-grad começando, e produto sendo construído em paralelo a tudo isso. Você não "chega" a lugar nenhum. Você vai chegando. Todos os dias. Vai criando. Vai curando. Vai se reinventando.
O gate desta manhã
O ritual de auditoria do Data Boar roda antes do primeiro commit do dia, em camadas: gate de PII nos arquivos staged, 12 hooks de pre-commit (ruff, lint, guardas de PII e de locale, sincronia do lockfile), 19 testes do guard em Rust, e a suíte Python completa — 1.499 testes, 9 skips. Mais de 1.500 verificações no total, em cerca de um minuto e meio. Verde.
E quando algo quebra, é o próprio gate que pega — já aconteceu: um script de suporte com caracteres unicode cosméticos que quebravam o PowerShell 5.1, identificado antes de qualquer commit. A solução foi apagar o arquivo: havia cumprido sua função, era descartável. O gate que deveria pegar, pegou. A correção que deveria ser simples, foi simples. Nenhum hotfix de madrugada. Gerúndio funcionando.
A origem
O Data Boar nasceu de uma missão que foi pensada para não dar certo. Fui encarregado de mapear a maturidade de proteção de dados de uma organização inteira — sem acesso a nenhum sistema, sem VPN, sem console. Só email e videochamada. Sistema a sistema, pessoa a pessoa, com quem às vezes mal sabia o que rodava. Fiz mais do que esperavam que eu fosse conseguir fazer. Fiz o DPO terceirizado se mexer!
Da tarefa que era para me parar saiu a pergunta que virou produto: "e se existisse uma ferramenta que fizesse esse levantamento com acesso direto, de forma auditável, sem depender de quem atende a chamada? Sem depender nem de mim depois de configurada?"
Nasceu na força do ódio, quase por vingança. E foi a melhor coisa que poderia ter acontecido.
O amor por trás da raiva
Digo que nasceu na força do ódio — e é verdade. Mas seria desonesto parar aí.
Nasceu também com muito amor. Minha esposa me aguentou durante todo o período mais pesado: o problema, a reconstrução, a reinvenção, as madrugadas de código, os remédios, a reforma, os gatilhos da doença, o caos simultâneo de tudo acontecendo ao mesmo tempo. Ela não só me aturou — ela me segurou. Sem esse apoio, não havia energia para transformar raiva em produto. A raiva dá ignição. O amor sustenta a combustão.
É isso que o #TudoNaVidaÉGerúndio carrega de verdade: não é uma pessoa sozinha chegando a lugar nenhum. É uma dupla indo chegando, juntos, um dia de cada vez.
Ela que batizou o produto
E foi ela também quem deu o nome.
O produto se chamava LGPD Crawler — nome técnico, frio, sem alma. Ela reclamou que não entendia. Disse pra usar algo que tivesse a ver comigo, com minha marca. Eu estava rascunhando logotipos que ficavam horríveis. Ela olhou e falou: "faz um porco procurando trufas. Faz um javali — já que você tem tanta raiva e tanta fome."
Ouvi isso e respondi: "amore? Data Boar."
O nome veio ali. Boar é javali — raiva, fome, determinação. Data Boar ainda ecoa perfuração, prospecção, ir fundo onde os outros não vão. E eu cuidei para não soar como o Snort (também suíno, também segurança) — território respeitado, marca diferente.
O mascote veio da mesma conversa. Da nossa loucura de nos completarmos. Combinamos. E o mascote, já me falaram ser bobo, "tem de parecer mais profissional"… Amigo, primeiro: ter mascote é comum em produtos OSS. Segundo: este mascote minha esposa quem fez. O mascote é INEGOCIÁVEL.
O que ficou de pé
Meses depois do primeiro commit, o Data Boar tem pilotos comerciais ativos, cobertura de mais de 40 jurisdições de privacidade ao redor do mundo, conectores para 16 tipos de fonte de dados diferentes, e uma suíte de mais de 1.500 testes que se auto-audita toda manhã antes de qualquer commit. Tem mais de 70 decisões arquiteturais documentadas — não só o que foi feito, mas por que foi feito. Tem glossário que não cabe no buffer padrão de nenhuma ferramenta que tentou ler. Tem um relatório de testemunha publicado no repositório porque um vendedor de internet bateu na minha porta em Niterói e fotografou a fachada sem explicar a base legal — e eu não assinei o contrato até ter resposta.
Tudo isso com um lab de quatro nós Linux, um ThinkPad, e uma parceria com um ex-colega que acompanha a evolução lá da Bélgica.
O ódio deu ignição. O amor sustentou. O gerúndio não parou.
Por que sumi ~50 dias — e o git prova cada um
Este post estava rascunhado pra sair no fim de maio. Saiu agora. Quase dois meses de silêncio nas redes — e nenhum dia de silêncio no git. O sumiço não foi bloqueio: foi trincheira. Cada dia escuro aqui fora tem commit assinado lá dentro. Já que #TudoNaVidaÉGerúndio, deixa eu contar o que estava acontecendo — em vez de só pedir desculpa pelo atraso.
Governança e documentação viraram coluna vertebral. Boa parte do período não foi código novo — foi escrever as regras do código. Decisões arquiteturais documentadas (o porquê, não só o quê), gates automáticos que barram dado pessoal antes de qualquer commit, ritual de auditoria que roda toda manhã antes de eu encostar no teclado. Burocracia? Não. É o que deixa um cara só operar como se fosse um time — e dormir à noite.
Controles criptográficos de verdade. Todo commit assinado (ed25519), histórico que rejeita commit sem assinatura, e o release carregando prova de integridade — se um byte do artefato mudar, dá pra provar. Num produto que mexe com LGPD, "confia em mim" não é controle. Assinatura é.
Contive uma alucinação de LLM — e blindei o contrato. Pedi um script "como está" pra um chat generativo de fornecedor e ele me devolveu meia dúzia de variantes que eu não pedi. Recuperei com backup + git em minutos. A lição virou doutrina pública no repo: LLM generativo é ótimo pra pensar junto, mas nunca é o motor do Data Boar nem o canal de código. O motor é regex com checksum, ML supervisionado com seed fixo, resultado reproduzível. Diff e prova — não alucinação. (É o assunto do "Alucinante", logo abaixo.)
Duas brigas de SEV-1 com fabricantes, ao mesmo tempo. Uma: um incidente com ferramenta de fornecedor me obrigou a higienizar o histórico do repositório a fundo e escalar o caso — caro, ingrato, necessário. Outra: a estação principal de desenvolvimento (o laptop) começou a falhar em hardware, e virou chamado/RMA com o fabricante. Perder a máquina-mãe no meio de um ciclo de release é o tipo de caos que o gerúndio existe pra atravessar.
E aí veio a melhor parte — a serendipidade. Com a estação principal fora, um ferro-velho entrou no lugar: um mini-PC musl, CPU antiga, sem nem instrução AVX. Pela lógica, seria só mais um alvo de teste. Mas o bichinho não só rodou — ele compilou o núcleo Rust do Data Boar em cerca de 4 minutos — o mesmo código que um Ryzen moderno compila em ~7 segundos, e com achados idênticos — e entregou ganho real e mensurável. E o binário musl saiu portátil: compila uma vez, roda em qualquer outro musl. "Build-once-run-everywhere" deixou de ser slogan.
Os números, pra não soar conversa: o pré-filtro em Rust acelera o ponto quente ~11 a 13 vezes contra Python puro, com achados idênticos; o carregamento do módulo caiu de ~2,4 s pra ~0,08 s (~30x); e a versão candidata ficou 4,5% mais rápida ponta a ponta sem perder um único achado. Tudo confirmado em corpus real de PII — não em slide.
A migração forçada virou estratégia. Trocar de máquina e de sistema me empurrou pra tornar tudo agnóstico de OS — inclusive o orquestrador que dirige os testes na bancada. O que era acidente virou princípio: se roda numa torradeira musl sem AVX, roda em qualquer lugar. (A bancada — chamo de Lab-PB aqui — também ganhou tentativa de expansão nesse período.)
Cinquenta dias calado nas redes. Cinquenta dias gritando no git. Isso é o gerúndio: você não espera o caos passar pra construir — você constrói dentro dele, e a construção reorganiza o caos.
Ceticismo não é pessimismo
No "Alucinante" escrevi sobre o custo de confiar cegamente em assistência de IA. O audit log desta manhã é a outra face da mesma moeda.
O Data Boar não usa LLM para detectar dado sensível. Usa regex com checksum real, ML supervisionado com seed fixo, resultados reproduzíveis. Tem um documento no repositório chamado AI Evolution Primer — contra hype por definição — que explica a diferença entre random forest, transformer e chatbot para quem ouve "IA" sendo usado para as três coisas ao mesmo tempo como se fossem a mesma. Não são.
O ceticismo que me faz revisar o que o agente produz é o mesmo que me fez construir mais de 1.500 testes em vez de confiar que "parece certo". Parece certo não basta. O gate tem que confirmar. É teu nome no commit. É tua reputação. É tua aplicação que pode parar.
#TudoNaVidaÉGerúndio não é otimismo. É o único modelo que conheço para manter cadência quando tudo está acontecendo ao mesmo tempo. Você não espera o caos acabar para começar a construir — você constrói dentro do caos, e a construção reorganiza o caos.
Os testes estão passando. O mascote é inegociável. O gerúndio continua.
GitHub (produto, outro contrato): https://github.com/FabioLeitao/data-boar
Caderno: https://fabioleitao.com/
LinkedIn: https://www.linkedin.com/in/fabioleitao/
Pós-escrito (21/jun/2026): enquanto eu fechava este texto, o repositório do Data Boar cruzou o PR #1000. Marco redondo — na base-10. Mas a tirinha #1000 do xkcd já avisa: "just 24 to go until a big round-number milestone!" — porque o número que um nerd de verdade comemora é 1024 = 2¹⁰. Então o gerúndio continua: faltam 24 PRs pro brinde binário, e quando o #1024 chegar, a gente festeja em base-2. Tudo na vida é gerúndio — até a contagem.
Deixe um comentário