Pular para o conteúdo
Mais leituras
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 →