
Busca inteligente com IA: aplicando semântica com baixo custo e simplicidade
Como adicionei busca semântica com IA a um blog de artigos longos usando SQLite, BM25, correção fuzzy e embeddings, sem banco vetorial nem API paga por consulta.
Ler artigoArquitetura de sistemas, decisões técnicas e liderança de engenharia. Conteúdo construído a partir de 20+ anos projetando software em produção.
Conteúdo para engenheiros que querem ir além da execução e pensar nas decisões que moldam sistemas ao longo do tempo.
Para engenheiros com experiência suficiente para saber que respostas certas dependem de contexto. O conteúdo parte do pressuposto de que você já sabe programar. O foco está no que vem depois: arquitetura, trade-offs de longo prazo, evolução de sistemas ao longo do tempo e a liderança técnica que sustenta esse trabalho.
Três disciplinas que se sobrepõem na prática de quem projeta, constrói e sustenta sistemas complexos ao longo do tempo.
System design, decomposição de sistemas e trade-offs que definem o que um sistema pode fazer ao longo do tempo. Como decisões de hoje limitam ou ampliam as opções de amanhã.
Design de código que sobrevive ao tempo. Gestão de complexidade em bases de código grandes, como sistemas acumulam ou reduzem dívida estrutural, e como construir software que pode ser modificado sem medo.
Influência técnica, alinhamento de decisões entre times e formação de cultura de engenharia. Como profissionais experientes multiplicam impacto além do próprio código.

Como adicionei busca semântica com IA a um blog de artigos longos usando SQLite, BM25, correção fuzzy e embeddings, sem banco vetorial nem API paga por consulta.
Ler artigo
Organizações que tratam desenvolvimento de software como manufatura medem horas, criam cards para tudo e chamam isso de gestão. Este artigo explora como o modelo mental de controle granular desvia energia do trabalho que realmente importa.
Ler artigo
Uma introdução ao que acontece quando um programa é executado. Cobre o que a memória é do ponto de vista do processador, como o contador de programa controla a execução, como código Java se traduz em instruções de máquina e por que os processadores introduziram a pipeline para superar o desperdício do modelo sequencial.
Ler artigoSistemas de software raramente falham por bugs isolados. Eles falham porque decisões acumuladas ao longo do tempo definem o que um sistema pode ou não se tornar.
Arquitetura não é sobre diagramas. É sobre as escolhas que determinam como um sistema evolui, quem pode mudá-lo e com que custo.
Este site existe para explorar essas decisões.
20+ anos projetando sistemas distribuídos, conduzindo transformações técnicas e desenvolvendo engenheiros. Cada artigo aqui nasce de decisões reais tomadas em sistemas em produção.
Como penso sobre engenharia →