Estudo Engenharia de Software em Brasília e fundei a Prumo com o Marcos Alan. É uma plataforma de estudos com IA para ENEM e concursos, com site, app de iPhone e app de Android, em produção com alunos e pagamentos reais. Trabalho no produto e no código, do banco à tela, e quase tudo que faço gira em torno de colocar modelos de linguagem em produção sem que eles virem um risco ou uma conta impagável.
A Prumo monta simulados e trilhas a partir do objetivo do aluno, corrige redação com nota nas cinco competências do ENEM e adapta o conteúdo ao cargo do concurso. Tem duelos entre alunos, flashcards com revisão diária e um painel interno que mede custo, tokens e latência de cada chamada de IA.
Os apps são nativos: SwiftUI no iPhone e no iPad, Jetpack Compose no Android, com widgets, Live Activity e treino guiado para o teste físico de concursos. Os três clientes usam o mesmo banco e a mesma API, e nenhuma chave privilegiada vai dentro do app.
| prumo | Estudo de caso da plataforma: arquitetura, custo de IA e decisões de segurança |
| prumo-apps | Estudo de caso dos apps iOS e Android: por que nativo, assinatura, animação dos exercícios |
- Integro LLMs em fluxos que o usuário paga para usar: geração de questões, correção de redação com rubrica, tutoria e montagem de treino e dieta.
- Deixo a conta com o código e o texto com o modelo. Na Prumo, índice de edital e meta de calorias são calculados em código; a IA só recebe os números prontos.
- Meço custo e latência por requisição e escolho o modelo de cada plano com esses números.
- Uso agentes de código (Claude Code, Cursor, OpenCode) no dia a dia e rodo modelos abertos quantizados localmente, como o Qwen.
- Trato texto de usuário como entrada não confiável. O promptguard saiu disso, com precisão e recall medidos num corpus separado.
- O agente instala pacote sozinho o tempo todo. Na Prumo o lockfile tem 660 pacotes e eu escolhi uns 20. O bouncer analisa cada um antes de instalar.
| Projeto | O que faz |
|---|---|
| bouncer | Analisa cada pacote que o agente de IA vai instalar (npm, PyPI, curl | sh, servidores MCP, skills) e bloqueia malware antes de rodar. Também executa o pacote num sandbox com credenciais falsas para ver o que ele tenta enviar |
| rls-guard | Audita as políticas de Row Level Security de um schema PostgreSQL/Supabase e sugere o SQL de correção |
| supabase-hardening | Procura o que vaza num projeto Supabase além das tabelas: buckets públicos, funções expostas em /rpc, configuração de auth |
| promptguard | Detecta prompt injection antes do texto chegar ao LLM |
| secret-scan | Acha chaves vazadas no código e no histórico do git, inclusive as que já foram apagadas |
| loglens | Lê logs de nginx e sshd, aponta ataques e gera um resumo por IA sem mandar o log cru para fora |
| headers-audit | Dá nota de A+ a F para os headers de segurança e os cookies de um site |
| Projeto | O que faz |
|---|---|
| skillcheck | Linter para skills do Claude Code, Cursor e Codex: dá nota de 0 a 100 e aponta gatilho fraco, colisão entre skills, link quebrado e custo em tokens |
| sales-skills | 16 skills de vendas B2B para agentes: prospecção, discovery, demo, objeções, proposta, negociação e revisão de pipeline com MEDDPICC |
| Projeto | O que faz |
|---|---|
| minikv | Banco chave-valor persistente no estilo Bitcask, com recuperação de falha, compactação e servidor compatível com o protocolo do Redis |
Todos têm testes e CI (Python 3.10 a 3.12, ou Node 18 a 22 em Linux, macOS e Windows) e um README que explica as decisões de projeto.