Pular para o conteúdo
Mais leituras
WebSockets na prática: comunicação em tempo real no navegador

WebSockets na prática: comunicação em tempo real no navegador

Como os WebSockets abrem um canal permanente entre navegador e servidor para tempo real, quando usá-los e o que muda em relação ao HTTP tradicional.

Ler →
Renderização no servidor x no cliente: SSR, CSR e hidratação

Renderização no servidor x no cliente: SSR, CSR e hidratação

SSR, CSR e hidratação sem jargão: onde o HTML é montado, o que o usuário vê primeiro e por que a escolha muda velocidade, SEO e interatividade.

Ler →
Cookies, sessões e tokens: mantendo o login na web

Cookies, sessões e tokens: mantendo o login na web

Como a web lembra quem você é entre requisições: cookies, sessões no servidor e tokens, com a mecânica e as decisões de segurança de cada abordagem.

Ler →
Cache HTTP na prática: Cache-Control, ETag e revalidação

Cache HTTP na prática: Cache-Control, ETag e revalidação

Como o cache HTTP realmente funciona: frescor, revalidação, ETag e as diretivas de Cache-Control que decidem o que é reusado sem baixar de novo.

Ler →
CORS explicado: por que o navegador bloqueia sua requisição

CORS explicado: por que o navegador bloqueia sua requisição

CORS não é o servidor te bloqueando: é o navegador protegendo o usuário. Entenda a mecânica de origens, preflight e cabeçalhos que libera a requisição.

Ler →
HTTP na prática: métodos, status e cabeçalhos que todo dev usa

HTTP na prática: métodos, status e cabeçalhos que todo dev usa

Os métodos, códigos de status e cabeçalhos HTTP que aparecem todo dia no trabalho de quem constrói web, explicados pela mecânica real da requisição.

Ler →
Como o navegador renderiza uma página: o caminho crítico

Como o navegador renderiza uma página: o caminho crítico

Entenda o caminho crítico de renderização: do HTML recebido ao primeiro pixel pintado, e as decisões práticas que deixam sua página rápida.

Ler →
Dívida técnica: como identificar, medir e pagar sem parar o mundo
1 min de leitura

Dívida técnica: como identificar, medir e pagar sem parar o mundo

Dívida técnica não é código feio — é atrito que cobra juros a cada entrega. Um guia para identificar, medir e pagar a dívida sem heroísmo nem sprints de limpeza.

Ler →
Documentação que a equipe realmente usa: o que escrever, o que jogar fora

Documentação que a equipe realmente usa: o que escrever, o que jogar fora

Por que a documentação apodrece, os quatro tipos de doc que resolvem necessidades distintas, o README e o ADR que importam, e o que nunca documentar.

Ler →
Refatoração segura passo a passo: mudar o código sem quebrar o que funciona
1 min de leitura

Refatoração segura passo a passo: mudar o código sem quebrar o que funciona

Refatorar é mudar a estrutura sem mudar o comportamento — e só é seguro com rede de testes e passos pequenos. Um guia do processo, não só do código bonito.

Ler →
Design patterns essenciais: os padrões que você vai reconhecer no código de todo dia
1 min de leitura

Design patterns essenciais: os padrões que você vai reconhecer no código de todo dia

Design patterns não são receitas para decorar — são vocabulário compartilhado. Um guia dos padrões que aparecem de verdade no código do dia a dia, e do risco de exagerar.

Ler →
Autenticação e autorização: dois conceitos que todo mundo confunde (e não deveria)
1 min de leitura

Autenticação e autorização: dois conceitos que todo mundo confunde (e não deveria)

Autenticação é provar quem você é; autorização é decidir o que você pode. Confundir os dois é a origem de metade das falhas de segurança. Um guia de conceitos que duram.

Ler →
Cache: quando usar, onde colocar e como não se enganar com dado velho

Cache: quando usar, onde colocar e como não se enganar com dado velho

Cache é a otimização mais poderosa e mais traiçoeira do desenvolvimento. Um guia sobre camadas, estratégias e o problema de verdade: a invalidação.

Ler →
Complexidade de algoritmos sem susto: entendendo o Big-O de verdade
1 min de leitura

Complexidade de algoritmos sem susto: entendendo o Big-O de verdade

O Big-O assusta na entrevista e desaparece no dia a dia — mas é a ferramenta que explica por que seu código fica lento quando os dados crescem. Um guia sem susto.

Ler →
Tratamento de erros que não engana: exceções, resultados e falhas que você consegue depurar

Tratamento de erros que não engana: exceções, resultados e falhas que você consegue depurar

Erros esperados não são bugs, e código que engole exceção esconde a causa. Um guia prático de tratamento de erros que você consegue depurar às 3 da manhã.

Ler →
Os princípios SOLID na prática: cinco regras para um código que aguenta mudança

Os princípios SOLID na prática: cinco regras para um código que aguenta mudança

SOLID explicado sem dogma: o que cada princípio resolve, exemplos de violação e correção, e quando aplicá-lo custa mais do que a bagunça que evita.

Ler →
Concorrência e paralelismo: o que muda quando seu código faz várias coisas ao mesmo tempo

Concorrência e paralelismo: o que muda quando seu código faz várias coisas ao mesmo tempo

Race conditions, deadlocks, locks e o modelo de memória: entenda por que código concorrente é difícil e quais padrões o tornam seguro e previsível.

Ler →
Estruturas de dados essenciais: escolher a estrutura certa é escolher o desempenho

Estruturas de dados essenciais: escolher a estrutura certa é escolher o desempenho

Array, lista ligada, hash table, árvore e grafo: entenda os trade-offs de cada estrutura de dados e por que a escolha certa define o desempenho do seu código.

Ler →
Code review eficaz: como revisar código sem virar gargalo nem carimbo

Code review eficaz: como revisar código sem virar gargalo nem carimbo

O que procurar numa revisão, como dar feedback que constrói, e por que a maioria dos code reviews desperdiça a oportunidade mais valiosa da engenharia em equipe.

Ler →
Carreira em engenharia de software: o que ninguém te conta sobre a progressão

Carreira em engenharia de software: o que ninguém te conta sobre a progressão

Júnior, pleno, sênior e além: o que muda de verdade em cada nível, por que a progressão não é sobre saber mais tecnologias, e como crescer sem se perder.

Ler →
Como os índices SQL realmente funcionam (e por que sua query está lenta)

Como os índices SQL realmente funcionam (e por que sua query está lenta)

A B-tree, a busca sequencial, os índices compostos e o plano de execução: entenda o que acontece por baixo de uma query para tornar bancos de dados rápidos.

Ler →
Design de APIs REST: os princípios que separam uma API agradável de uma dor de cabeça

Design de APIs REST: os princípios que separam uma API agradável de uma dor de cabeça

Recursos, verbos, códigos de status, versionamento e paginação: um guia prático para projetar APIs REST que os consumidores entendem e que envelhecem bem.

Ler →
Git além dos comandos: entendendo o modelo mental que evita as enrascadas

Git além dos comandos: entendendo o modelo mental que evita as enrascadas

Commits, branches, merge e rebase fazem sentido quando você entende o grafo por baixo. Um guia do modelo mental do Git e dos fluxos de trabalho que funcionam.

Ler →
A pirâmide de testes: por que testar rápido e testar o suficiente não são a mesma coisa

A pirâmide de testes: por que testar rápido e testar o suficiente não são a mesma coisa

Unitários, de integração e end-to-end: entenda a pirâmide de testes, o que cada camada prova, e como montar uma suíte que dá confiança sem virar um peso morto.

Ler →
Acoplamento e coesão: os dois eixos que decidem a arquitetura do seu software

Acoplamento e coesão: os dois eixos que decidem a arquitetura do seu software

Antes de escolher microsserviços ou monólito, entenda acoplamento e coesão — os dois princípios que realmente determinam se seu sistema será fácil ou impossível de evoluir.

Ler →
Clean Code na prática: escrevendo código que a próxima pessoa consegue ler

Clean Code na prática: escrevendo código que a próxima pessoa consegue ler

Nomes, funções, comentários e níveis de abstração: um guia prático de clean code para escrever código legível, testável e barato de manter no longo prazo.

Ler →
Go errors v2: do 'if err != nil' ao que muda em 1.26

Go errors v2: do 'if err != nil' ao que muda em 1.26

errors.Join, %w, wrapping em cadeia: o que evoluiu nos últimos cinco anos e por que importa.

Ler →
Rust no front da fila: media-svc na real

Rust no front da fila: media-svc na real

Por que escolhemos Rust pra dois serviços de uma plataforma 90% Go e o que aprendemos.

Ler →
ULID em coluna UUID: a interop que evitou uma migração inteira

ULID em coluna UUID: a interop que evitou uma migração inteira

Como armazenar ULIDs em colunas UUID sem perder funcionalidade nem performance.

Ler →
Caddy on_demand_tls explicado em 10 minutos

Caddy on_demand_tls explicado em 10 minutos

Como servir TLS pra milhares de domínios sem pre-provisionar certificado — e como evitar abuso.

Ler →
NATS JetStream pra outbox, com o mínimo de cerimônia

NATS JetStream pra outbox, com o mínimo de cerimônia

Padrão outbox sem Kafka, sem Debezium, sem sofrimento. Cinco serviços em produção dizem que funciona.

Ler →
SpiceDB sem mitologia: schema, caveats e por que importa

SpiceDB sem mitologia: schema, caveats e por que importa

Authz como serviço com modelo Zanzibar — quando vale, como modelar, onde a complexidade aparece.

Ler →
Postgres schema-per-service: o por que e o quando dói

Postgres schema-per-service: o por que e o quando dói

Uma instância de Postgres, 15 schemas, 15 serviços. A defesa de uma escolha contra-intuitiva.

Ler →
Ansible idempotente: 15 playbooks pra um deploy reproduzível

Ansible idempotente: 15 playbooks pra um deploy reproduzível

Como camverly-ops cobre provisão, deploy, update e bootstrap sem precisar de SSH manual.

Ler →
Astro 5 SSR no Node 22: lições do web-public em produção

Astro 5 SSR no Node 22: lições do web-public em produção

Por que SSR em Astro é diferente do que Next.js te ensinou, e o que ganhamos com isso.

Ler →
SystemD que não vaza: NoNewPrivileges, ProtectSystem e PrivateTmp

SystemD que não vaza: NoNewPrivileges, ProtectSystem e PrivateTmp

Três flags que isolam serviços a custo zero. O que cada uma faz e quando ativar.

Ler →