Blog
O que eu penso.
Carreira, engenharia e o que aprendi errando primeiro pra você não precisar.
Desenhando uma API pensada para rastreabilidade
A maior parte das APIs devolve estado. Quem precisa provar o que aconteceu precisa de outra coisa, e isso muda o desenho desde o primeiro endpoint.
→SET 2026O MVP mais mal entendido do mercado
Virou sinônimo de versão capenga com prazo curto. A ideia original era outra e é bem mais útil.
→SET 2026Retry, backoff e dead letter queue
Repetir a operação que falhou parece trivial. Feito errado, o retry transforma uma falha pequena numa queda geral.
→SET 2026Conciliação financeira automatizada: o que ninguém conta
O relatório do gateway não bate com o seu banco de dados. Nunca bate. A questão é o que fazer com as diferenças que são normais.
→SET 2026Correlation ID, trace ID e span ID: quem é quem
Três identificadores que quase todo mundo mistura, e a diferença entre eles é o que permite responder o que aconteceu com aquela requisição.
→SET 2026SQL injection em 2026: por que ainda acontece
A falha tem quase trinta anos e continua aparecendo. Não é por falta de conhecimento: é por causa dos lugares onde o ORM não alcança.
→SET 2026Event sourcing: quando vale e quando é tiro no pé
Padrão poderoso, caro e adotado pelo motivo errado com frequência. Os quatro casos onde ele se paga.
→SET 2026Estimativa honesta: como dar prazo sem mentir
O problema da estimativa não é a matemática. É que a pergunta feita e a pergunta respondida quase nunca são a mesma.
→SET 2026Ledger imutável: como corrigir um erro sem apagar nada
Lançou errado. A tabela não aceita update. E agora? A resposta é a mesma que a contabilidade usa há séculos.
→AGO 2026Cenário: o índice que faltava e derrubou a Black Friday
Caso de estudo. A query rodava em 40ms havia dois anos. Num sábado ela passou de 12 segundos e levou o site junto.
→AGO 2026Monólito modular: a arquitetura que a maioria dos times deveria ter
A discussão monólito contra microserviço esconde a opção do meio, que é onde quase todo produto deveria estar.
→AGO 2026Hash de senha: bcrypt, scrypt, Argon2 e os parâmetros que importam
Escolher o algoritmo é a parte fácil. Os parâmetros errados transformam a escolha certa em proteção de mentira.
→AGO 2026Outbox pattern no Postgres: mensagem e transação no mesmo commit
Gravar no banco e publicar na fila são duas operações que podem falhar separadamente. O outbox junta as duas num commit só.
→AGO 2026O que é um product studio e por que fundei um
Não é agência, não é consultoria e não é fábrica de software. A diferença está no que se entrega e em quem carrega o risco.
→AGO 2026Segredo commitado: o que fazer nas primeiras duas horas
Acontece com todo time. O que decide o tamanho do estrago é a ordem das ações, e quase todo mundo faz na ordem errada.
→AGO 2026Saldo calculado ou saldo materializado: escolha com consequência
A pergunta que todo sistema financeiro enfrenta no primeiro mês. Escolher errado é barato agora e caro depois.
→AGO 2026Merkle tree na prática: provar que nada foi alterado
A estrutura por trás do Git, do Bitcoin e do certificate transparency. Mais simples do que a fama sugere, e útil fora de blockchain.
→AGO 2026O engenheiro que entende produto vale o dobro
Não é sobre virar PM. É sobre parar de aceitar tarefa e começar a discutir problema, que é onde a decisão cara acontece.
→AGO 2026IDOR: a falha mais chata e mais comum de todas
Trocar o número na URL e ver o dado de outra pessoa. Não precisa de ferramenta, não precisa de conhecimento, e continua em toda parte.
→AGO 2026Idempotência em pagamentos: o problema de cobrar duas vezes
Os quatro pontos de um fluxo de pagamento onde a duplicata entra, e o que cada um exige. Nenhum deles é resolvido pelo mesmo mecanismo.
→AGO 2026Audit trail que aguenta uma auditoria de verdade
Quase todo sistema tem uma tabela de log de alteração. Quase nenhuma responde as perguntas que aparecem quando a auditoria chega.
→AGO 2026Query N+1: como detectar e matar
O bug de performance mais comum em aplicação com ORM. Invisível em desenvolvimento, brutal em produção, e sempre a mesma correção.
→AGO 2026JWT: os erros que aparecem em quase todo projeto
Token assinado não é token seguro. Sete problemas que eu encontro com frequência desconfortável, e como consertar cada um.
→AGO 2026Como funciona um core ledger por dentro
Do request que chega ao saldo que aparece na tela. As camadas, os locks e o que roda de madrugada pra garantir que o número está certo.
→AGO 2026Log append-only: a estrutura mais subestimada de arquitetura
Uma tabela onde só se insere resolve rastreabilidade, auditoria, integração e boa parte dos bugs de concorrência. E quase ninguém começa por ela.
→AGO 2026De júnior a pleno: o que realmente muda
Não é a quantidade de tecnologia que você conhece. É parar de entregar no escuro e começar a sustentar a própria decisão.
→AGO 2026Cenário: a cobrança que saiu duas vezes
Um caso de estudo montado a partir de um padrão que se repete. O bug leva quatro minutos pra acontecer e três dias pra ser entendido.
→AGO 2026UUIDv7, ULID ou Snowflake: identificadores que não sabotam seu índice
UUIDv4 como chave primária é a decisão mais fácil de tomar e uma das mais caras de manter. Existe alternativa.
→AGO 2026Autenticação e autorização: confundir os dois custa caro
Saber quem é a pessoa e saber o que ela pode fazer são problemas separados. A maioria dos vazamentos mora na segunda parte.
→AGO 2026Por que dinheiro nunca deve ser float
0.1 + 0.2 não dá 0.3. Isso é uma curiosidade em tutorial e um prejuízo em sistema de pagamento.
→AGO 2026Índices no Postgres: os que importam e os que só ocupam disco
Metade dos índices que eu encontro em projeto nunca foi usada. E o índice que faltava está sempre na query que trava tudo.
→AGO 2026Idempotência: a chave que salva sua API de cobrar duas vezes
Rede falha no meio. O cliente não sabe se deu certo e tenta de novo. O que acontece depois disso é decisão de arquitetura.
→AGO 2026Como eu enxergo a arquitetura do LinkedIn
A empresa que resolveu o problema de integração entre sistemas transformando o log num produto. É por isso que o Kafka existe.
→AGO 2026Modelagem de ameaças em uma hora, com post-it
Dá pra fazer sem consultoria, sem framework de quatro letras e sem ninguém com cargo de segurança no time.
→AGO 2026Como eu enxergo a arquitetura do Spotify
Dois sistemas escondidos num só: um orçamento de latência medido em milissegundos, e um log de eventos que também é a contabilidade.
→AGO 2026Partidas dobradas explicadas para desenvolvedor
Contabilidade do século XV é a melhor constraint de integridade que já inventaram pra dinheiro. Sem jargão de contador.
→AGO 2026Como eu enxergo a arquitetura do WhatsApp
Criptografia ponta a ponta não é uma funcionalidade. É uma restrição que decide o que o servidor pode fazer, e ela simplifica mais do que complica.
→AGO 2026O que é hash criptográfico, explicado para quem constrói sistema
Sem analogia de liquidificador. O que a função garante, o que ela não garante, e onde o uso errado aparece em produção.
→AGO 2026Como eu enxergo a arquitetura do YouTube
Upload não é uma requisição, é um pipeline. E a recomendação não escolhe o melhor vídeo: ela elimina quase todos antes de escolher.
→AGO 2026Como construir aplicações seguras: o guia que eu queria ter lido
A maioria dos incidentes não vem de ataque sofisticado. Vem de permissão mal desenhada e de coisa que ninguém revisou.
→AGO 2026Como eu enxergo a arquitetura do Instagram
O sistema mais impressionante da série é o mais entediante. E o identificador deles carrega a resposta pra um problema que quase todo mundo resolve errado.
→AGO 2026O que é um core ledger e por que quase todo produto financeiro precisa de um
Coluna de saldo na tabela de usuário funciona até o dia em que alguém pergunta por que o número está errado. Aí não tem resposta.
→AGO 2026Como eu enxergo a arquitetura do Twitter (X)
Uma timeline não é uma consulta. É um resultado calculado antes de alguém pedir, e é essa inversão que sustenta o produto inteiro.
→AGO 2026Como projetar um sistema de rastreabilidade com hash único
Gerar um hash é fácil. Difícil é responder, seis meses depois, o que aquele hash prova. Um projeto de ponta a ponta.
→JUL 2026O que seis empresas me ensinaram sobre começar de novo
Trocar de empresa não é recomeçar do zero — é levar um repertório novo pra um problema novo.
→JUN 2026De pleno a sênior: o que realmente muda
Não é sobre saber mais tecnologia. É sobre ampliar o raio do teu impacto.
→MAI 2026Feedback que funciona: como pedir e como dar
A maioria dos feedbacks é inútil por educação. Um roteiro simples pra mudar isso.
→