Blog

O que eu penso.

Carreira, engenharia e o que aprendi errando primeiro pra você não precisar.

SET 2026

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 2026

O 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 2026

Retry, 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 2026

Conciliaçã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 2026

Correlation 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 2026

SQL 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 2026

Event 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 2026

Estimativa 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 2026

Ledger 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 2026

Cená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 2026

Monó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 2026

Hash 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 2026

Outbox 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 2026

O 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 2026

Segredo 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 2026

Saldo 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 2026

Merkle 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 2026

O 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 2026

IDOR: 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 2026

Idempotê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 2026

Audit 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 2026

Query 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 2026

JWT: 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 2026

Como 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 2026

Log 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 2026

De 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 2026

Cená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 2026

UUIDv7, 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 2026

Autenticaçã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 2026

Por 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 2026

Idempotê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 2026

Como 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 2026

Modelagem 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 2026

Como 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 2026

Partidas 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 2026

Como 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 2026

O 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 2026

Como 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 2026

Como 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 2026

Como 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 2026

O 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 2026

Como 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 2026

Como 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 2026

O 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 2026

De pleno a sênior: o que realmente muda

Não é sobre saber mais tecnologia. É sobre ampliar o raio do teu impacto.

MAI 2026

Feedback que funciona: como pedir e como dar

A maioria dos feedbacks é inútil por educação. Um roteiro simples pra mudar isso.