A Migração do Angular Para Signals É Uma Mudança de Runtime, Não de Sintaxe
O Angular saiu de NgModules e Zone.js para componentes standalone e signals, e é fácil ler isso como uma API mais limpa. A parte que de fato importa é que a própria detecção de mudanças funciona diferente agora, não só a forma como você escreve.
Leia mais →O Problema de N+1 Queries Nunca Foi Embora
ORMs facilitaram escrever um loop que parece uma operação só e roda cem queries. Resolvers do GraphQL e código CRUD gerado por IA só deram um novo esconderijo pro mesmo bug de sempre.
Leia mais →Deploy Sem Downtime É Problema de Banco de Dados, Não de Servidor
Rolling restart, health check, drenagem de conexão — os times resolvem tudo isso e ainda assim têm uma indisponibilidade, porque o que quebrou nunca foi o servidor.
Leia mais →Agentes de IA Para Código Precisam de Testes Mais do Que Humanos
O instinto é achar que um agente rápido precisa de um processo mais leve pra acompanhar o ritmo. É o contrário: quanto maior a velocidade de mudança, mais uma suíte de testes de verdade está fazendo o trabalho que um humano cauteloso fazia manualmente.
Leia mais →Feature Flags Apodrecem Como Qualquer Outro Código
Uma flag é vendida como rede de segurança: lança escondido, libera aos poucos, mata na hora se algo quebrar. A própria rede de segurança precisa de manutenção, e raramente recebe alguma.
Leia mais →Type Safety de Ponta a Ponta É Propriedade da Fronteira, Não da Linguagem
Um frontend fortemente tipado e um backend fortemente tipado ainda podem mentir um pro outro o tempo todo. Os tipos só significam algo na costura entre os dois.
Leia mais →Local-First É Arquitetura, Não Recurso
"Funciona offline" geralmente é parafusado depois, como um adendo. Os sistemas que realmente conseguem isso tratam como premissa inicial, não como exceção.
Leia mais →O WebAssembly Está Silenciosamente Dominando o Backend
O Wasm nasceu como tecnologia de navegador. Seu caso de uso mais interessante acabou sendo bem longe do navegador.
Leia mais →O Retorno Discreto das Aplicações Renderizadas no Servidor
Por anos a resposta padrão foi "lance uma single-page app e deixe o cliente fazer o trabalho". Esse padrão está sendo reconsiderado, por motivos que não têm nada a ver com nostalgia.
Leia mais →Edge Functions Não Resolvem um Banco de Dados Lento
Rodar código mais perto do usuário corta milissegundos do salto de rede. Não faz nada pela query que demora 400ms quando chega lá.
Leia mais →Engenharia de Contexto É a Nova Engenharia de Prompt
Prompts bem escritos chamam muita atenção. O que realmente determina se um agente de IA para código é útil é o que você deixa ele enxergar.
Leia mais →RAG É um Problema de Arquitetura, Não de Prompt
A maioria dos tutoriais de retrieval-augmented generation foca no prompt. A parte que realmente determina se seu sistema funciona é tudo que acontece antes do modelo ver um único token.
Leia mais →Por Que Estou Estudando RAG e LLM Engineering Sendo Dev Backend
Depois de quatro anos construindo sistemas .NET de missão crítica, eis por que retrieval-augmented generation é o próximo assunto em que estou indo a fundo — e como estou abordando isso.
Leia mais →Migrando um Sistema Legado Sem Downtime
Notas sobre mover o GESCON de VB.NET para Angular e .NET 5 mantendo o sistema antigo no ar para todo usuário, todos os dias.
Leia mais →Em Defesa da Tecnologia Chata
Frameworks novos são divertidos de avaliar e caros de manter. Um argumento curto para gastar o "orçamento de inovação" do time com cuidado.
Leia mais →Engenharia Reversa em um Sistema Legado Sem Documentação
Como mapeei um motor biométrico de 800 linhas sem nenhuma documentação, e o que isso me ensinou sobre ler código em vez de só escrever.
Leia mais →Clean Architecture Não É Sobre Pastas
A maioria das implementações de "Clean Architecture" acerta a regra de dependência e erra o ponto principal. Eis o que realmente importa.
Leia mais →
Blog
Notas sobre engenharia de software e IA