Método
Spec antes de código
Todo case deste site segue a mesma regra: o comportamento vive numa especificação antes de viver num endpoint. Quando os dois divergem, isso se corrige como qualquer outro bug. O Knoxis é o exemplo mais claro: o invariante de que nenhuma coluna, em lugar nenhum, liga um voto a quem votou foi escrito antes da tabela votes existir, e um teste de introspecção de schema hoje derruba o build se alguma migration futura adicionar essa coluna. O fluxo de graduação do FECOT é o mesmo instinto aplicado a uma regra de negócio: a graduação de um atleta só muda por um fluxo de solicitação e aprovação, decidido e registrado antes de existir um único endpoint que tocasse esse campo, especificamente para que uma reescrita não perdesse em silêncio uma regra que o sistema antigo já impunha.
Toda decisão carrega o próprio custo
Uma escolha sem custo declarado só conta como engenharia quando esse custo está escrito ao lado dela. Todo case aqui documenta o que foi escolhido, o que foi descartado no lugar, por quê, e quanto custa, às claras, ao lado da própria decisão. Este projeto de portfólio se cobra o mesmo padrão: onze registros de decisão de arquitetura, cada um com a alternativa considerada e o motivo dela ter perdido, cobrindo desde a escolha de um gerador de site estático até em que condição a capa de um case pode ser uma captura de tela real em vez de arte gerada. A decisão de ciclo de vida de container do Code Sphere é um exemplo no nível do próprio case: existem containers pra sessenta alunos, mas só sessenta, e nunca todos rodando ao mesmo tempo, uma escolha que troca um primeiro login mais lento por um servidor que não precisa ser quatro vezes maior.
Uma regra que ninguém precisa lembrar
Uma regra que depende de alguém lembrar acaba esquecida mais cedo ou mais tarde. Os projetos deste site transformam regra absoluta em verificação que roda sozinha e barra um release quando falha, em vez de viver como documentação que espera ser lida. O isolamento entre tenants do FunilChat AI é garantido primeiro por row-level security do PostgreSQL, e um teste consolidado percorre toda tabela pra confirmar que a política de fato está lá, então a garantia não depende de ninguém conferir uma migration na mão. O próprio build deste site funciona do mesmo jeito: um script varre toda palavra publicada atrás de nome de cliente nunca autorizado, outro confere se toda página em inglês tem uma gêmea em português e vice-versa, e o build simplesmente se recusa a terminar se qualquer um dos dois falhar.
Trabalhar com assistente de IA, de propósito
Todo case deste site, e o site em si, foi construído em parceria com um assistente de IA de código, e isso está declarado aqui em vez de deixado pra alguém perceber sozinho. A disciplina é o que torna seguro dizer isso em voz alta: nenhuma métrica aparece sem um jeito de reconstituir de onde ela veio, direto do código real; nenhum case é escrito antes do código por trás dele ter sido de fato lido; e uma varredura mecânica barra o build no instante em que um nome de cliente não autorizado, um segredo, ou um número inventado tenta entrar em qualquer coisa publicável. O assistente escreve rápido; a spec, o ADR e a verificação são o que impede rápido de virar descuidado.
Tem interesse em um projeto como esse? Entre em contato.
Entrar em contato