O sinal, não o ruído.
Ensaios longos e notas rápidas sobre agentes de IA, engenharia de produto, carreira e a arte de entregar.
Agentic Git: como usar IA para trabalhar com Git e GitHub (sem gastar tokens à toa)
Guia de Agentic Git para vibe coders e devs juniores: deixe o agente de IA criar branch, commit, PR e resolver conflitos usando o git CLI (não o MCP) para economizar tokens.
PgBouncer multiplexando conexões, e como o Neon faz isso
Como a multiplexação do PgBouncer deixa milhares de clientes dividirem poucas conexões Postgres no modo transação, e como o Neon embute isso com driver serverless.
Como funciona o pool de conexões de banco de dados
Como funciona o pool de conexões de banco: um pool mantém poucas conexões abertas e empresta uma por query, evitando o custo de abrir conexão a cada requisição.
Git e GitHub para iniciantes: do clone à sua primeira Pull Request
Guia prático de Git e GitHub para iniciantes: clone (ou fork) um projeto, crie sua branch, faça commits, abra sua primeira Pull Request, peça review e mescle.
DDD com EventStorming no iTOP: da venda ao check-in do ingresso
Entenda DDD na prática usando o iTOP: eventos, pedidos, pagamentos, emissão de ingressos, check-in, subdomínios, contextos delimitados, regras e TypeScript.
DDD na prática com EventStorming: do cliente ao primeiro processo
Como usar o processo inicial de modelagem em Domain-Driven Design
Domain-Driven Design fica mais claro quando o time transforma negócio, domínio, arquitetura, times e código em uma sequência iterativa de decisões reais.
Produtos já eram automação antes do software
Automação antes do software: entenda como produtos, serviços e tecnologia já embalavam processos antes da IA.
Do feudalismo à IA: como ler revoluções passadas
Revolução da IA: entenda como feudalismo, impérios e indústria mudaram escassez, poder e trabalho para decidir melhor agora.
O mercado virou um experimento com IA
Mercado com IA: entenda o caos, as demissões, o marketing, as novas oportunidades e a pressão sobre pessoas em 2026 e 2027.
Node.js AsyncLocalStorage: contexto assíncrono sem prop drilling
Superpowers vs Agent Skills vs Matt Pocock Skills: qual usar?
Superpowers vs Agent Skills vs Matt Pocock Skills: compare autonomia, ciclo de vida e toolkit diário para escolher skills de coding com menos risco.
Loop Engineering: o que é, onde usar e quando evitar
Loop Engineering aplica agentes de IA em ciclos com meta, memória, verificação e limite. Veja onde usar em produto, código e rotina pessoal prática.
Engenharia de loops: como agentes de IA trabalham sem você pilotar cada passo
Engenharia de loops transforma prompts em ciclos com meta, estado, verificador e limite. Aprenda quando usar agentes de IA sem queimar tokens caros no produto.
Distorções cognitivas para engenheiros: como pensar melhor sob pressão
Distorções cognitivas afetam decisões técnicas. Aprenda a identificar padrões comuns e trocar reação automática por análise verificável no trabalho.
HTTP QUERY: o método seguro com body agora é RFC 10008
Como adicionei TTS nativo do navegador no blog
Tutorial de TTS no navegador para posts Next.js: pesquisei Web Speech API, planejei o player, implementei vozes, velocidade, testes e próximos passos.
O que é ser agêntico em IA: a releitura do carro autônomo
Agêntico em IA é autonomia com julgamento humano. Entenda a diferença para AI-assisted usando a metáfora do carro autônomo.
REST vs RPC: quando usar gRPC, tRPC, oRPC ou REST
REST vs RPC: compare performance, OpenAPI, erros tipados, streaming e DX para escolher entre API REST, gRPC, tRPC e oRPC em sistemas reais de produção.
Como desenvolver software mudou em 2026
Desenvolver software em 2026 mudou com agentes, specs, skills, MCPs e QA automático, mas os fundamentos continuam iguais.
Como construí o Ask Thiago: um RAG público para o blog
Iniciantes não deveriam começar com JavaScript
JavaScript para iniciantes parece fácil, mas ensina hábitos perigosos cedo. Comece com compilador, tipos e imutabilidade antes de escalar codebases reais.
O gargalo do sistema web quase nunca é CPU, é I/O
Entenda por que sistemas web travam mais por I/O do que por CPU e como Node.js com TypeScript reduz latência sem arquitetura prematura.
Sandcastle vs Flue: runner de coding agent ou framework de agentes?
Sandcastle vs Flue: compare função, sandbox, Git, sessões, workflows e deploy para escolher entre runner de coding agent e framework de agentes.
Processo de code review: como revisar código sem travar o time
Processo de code review melhora qualidade sem travar o time: prepare PRs pequenos, revise risco, separe bloqueios de sugestões e mantenha fluxo claro.
Deploy cancelado por Out Of Memory: cache do WiredTiger em containers
RPC, REST e GraphQL: a mesma chamada remota com interfaces diferentes
Num app fullstack web em TypeScript, REST, GraphQL e RPC/tRPC parecem três mundos. Mas os três serializam dados, mandam por HTTP e voltam com a resposta. Vivem todos na camada 7 da OSI. O que muda não é a remotidade, é a interface mental do topo, e o preço de cada abstração. Com o contraste tRPC vs Server Action no mesmo create.
O harness é o produto
WorkOS, Stripe e OpenAI chegaram, por caminhos diferentes, à mesma conclusão sobre coding agents: o trabalho de engenharia sênior deixou de ser escrever código e virou construir o harness que faz o agente escrever código de forma confiável.
Onde Java com Spring Boot ainda ganha de Node.js (e onde não)
Não é Java vs Node no abstrato. É sobre onde a maturidade do ecossistema Spring resolve, de fábrica, problemas chatos de produção que no Node ainda são montados peça por peça, e onde Node + TypeScript continuam sendo a escolha óbvia. Com honestidade sobre Virtual Threads, tipagem que some no runtime e o que realmente decide: o requisito.
Voltando aos fundamentos: vou fazer a Machine Learning Specialization do Andrew Ng
Por que, trabalhando com LLMs e agentes todo dia, decidi voltar à base do ML clássico — e o que cada um dos três cursos da especialização do Andrew Ng cobre.
LlamaIndex: orquestrando seus dados com LLMs
14 livros que todo engenheiro deveria ler — e a lição central de cada um
A lista de leitura não técnica da Chip Huyen, com um resumo e a lição prática que você leva de cada livro: de sistemas complexos a criptografia, passando por acaso, design e ética científica.
Anatomia de um agente: o que são tools, de verdade
Partindo do artigo de agentes da Chip Huyen e olhando o código de um coding agent open-source, desvendamos o que é uma tool, como o modelo a chama e por que defensive prompt engineering não é opcional.
MCP vs CLI: o que é cada um, quando usar e quando não
MCP (Model Context Protocol) padroniza como apps de IA descobrem e usam ferramentas externas. Mas nem todo agente precisa de MCP — CLI muitas vezes resolve melhor e mais barato. Explico o que é MCP, o fluxo client → server, casos de uso, quando não faz sentido, e por que CLI vence em vários cenários.
Minha jornada com IA: do ChatGPT em 2023 ao caos criativo de 2026
Como eu saí de um chat de perguntas e respostas para um workflow inteiro de desenvolvimento com agentes — Cursor, Claude Code, Pi.dev, Conductor — e por que 2026 é o ano de reconstruir a forma de programar.
Por que Markdown é a lingua franca dos LLMs e o que isso muda no seu RAG
Conductor: orquestrando vários agentes de IA no Mac sem virar bagunça
Minha experiência usando o Conductor para rodar Claude Code e Codex em paralelo em workspaces isolados, com git worktree, diff viewer e merge sem precisar abrir o GitHub.
Raciocínio é Planejamento: o que o RAP muda na forma como LLMs pensam
Como o framework RAP (Reasoning via Planning) transforma um LLM em agente e world model ao mesmo tempo, e usa Monte Carlo Tree Search para destravar planejamento deliberado — superando GPT-4 com CoT em Blocksworld usando apenas LLaMA-33B.
llama.cpp 100k estrelas: a era dos agentes locais começou
Por que o marco do llama.cpp e o Pi rodando Qwen3.6 no MacBook em modo avião marcam o início da segunda revolução da IA — local, soberana e plural.
Lenis no Next.js: como o scroll do site ficou cinematográfico em 19 linhas
O scroll do site era nativo, duro, com aquele 'tranco' do trackpad em página longa. Coloquei o Lenis via ReactLenis root e o resultado encaixou no resto do redesign sem hijack, sem quebrar âncoras e sem brigar com prefers-reduced-motion.
Em 2026, use Postgres — até onde o requisito deixar
Como construir uma plataforma de GenAI: tutorial em 7 camadas
Um passo a passo prático para evoluir uma aplicação de IA generativa — de uma chamada simples a um modelo até uma plataforma com RAG, guardrails, gateway, cache, agentes, observabilidade e orquestração. Baseado no ensaio de Chip Huyen.
Por que Python e PyTorch dominam a inferência de ML
Python é a linguagem cola, PyTorch venceu pelo eager mode, e em produção quase ninguém serve PyTorch puro. O racional por trás do stack padrão de ML hoje.
Afinal, o que é um agente?
Uma definição honesta de agente de IA, com base em Chip Huyen, Anthropic e Cedric Chee: percepção + ação em um ambiente, com tools, memória e um loop de decisão.
RAG do começo ao fim: Input, Retriever e Generator explicados
Um overview denso sobre RAG (Retrieval-Augmented Generation): o que é, por que importa, o significado de Retrieval, Augmented e Generation, o pipeline de ingestão offline, o fluxo de consulta online, embeddings, similaridade por cosseno, HNSW e chunking.
The AI Engineering Stack: resumo aplicado
Pinecone: o vector database padrão pra RAG
O que é Pinecone, quando faz sentido usar, como funciona e os trade-offs em relação a pgvector, Qdrant, Turbopuffer e Upstash Vector.
pgvector + Aurora PostgreSQL para embeddings: por que escolhi (e como uso)
O racional para escolher Aurora PostgreSQL com pgvector em vez de um vector database dedicado, e um guia prático de setup, índice e queries com Drizzle.
GoodAIList: o mapa vivo dos repositórios de IA open source
Por que o catálogo da Chip Huyen virou minha referência rápida para acompanhar o ecossistema de IA open source — e como tirar proveito dele.
6 armadilhas comuns ao construir aplicações com IA generativa
Notas e comentários sobre o ensaio da Chip Huyen — os erros previsíveis que times cometem ao sair do protótipo e ir para produção com LLMs.
Saindo da nuvem: por que 2026 é o ano da volta ao bare metal
Tendências de stack de IA em 7 empresas: o que o Pragmatic Engineer revela
AWS Bedrock, Postgres com pgvector, LangChain e a descida ao metal: a leitura mais útil do levantamento não é a lista de ferramentas, é a curva que elas desenham.
PRD vs SPEC: qual escrever primeiro (e por que com IA isso importa mais)
A diferença prática entre Product Requirements Document e Technical Specification, o fluxo natural entre os dois, e por que pular o PRD na era da IA é a forma mais rápida de implementar a coisa errada.
LLM Wiki: a ideia do Karpathy para memória de verdade em agentes de IA
Karpathy propôs trocar o RAG por uma wiki persistente que a LLM mantém sozinha. Por que isso muda a conversa sobre memória de agentes, e o que o Fabio Akita acrescenta sobre o lado prático.
Qual seria a melhor linguagem de programação para agentes de IA?
Akita levantou a pergunta: e se a linguagem ideal fosse feita para LLMs editarem, não para humanos lerem? Minha aposta é que a resposta não é uma linguagem exótica nova, e sim contratos graduais sobre algo que os modelos já sabem escrever.
Luz volumétrica, anel de névoa e paralax 3D: reconstruindo o hero em CSS/SVG puro
O MacBook e a distro minimalista: por que 2026 é o ano de testar ferramentas de IA
Uma resposta ao Akita sobre oh-my-pi e OpenCode. A analogia com Linux funciona — mas talvez Claude Code seja o MacBook, e o Pi a distro minimalista que você admira mas não consegue manter.
Tenho mais medo do arrependimento do que de quebrar a cara
Uma reflexão sobre sair da estabilidade, tentar uma carreira internacional em tecnologia e aceitar que algumas decisões fazem sentido mesmo quando doem.
A nova identidade visual do meu website e blog: Minimalismo Futurista + IA Agentic
O racional por trás do redesign: paleta, tipografia, componentes visuais e decisões técnicas para criar um site mais autoral, moderno e vivo.
Harness Engineering: o que faz agentes de IA entregarem software de verdade
Modelos melhores ajudam, mas o salto de qualidade em agentes de código vem do ambiente ao redor: contexto, sensores, memória, gates e orquestração.
Níveis de carreira de Software Developer/Engineer
Síndrome do impostor na tecnologia
Uma reflexão baseada na palestra de Julie Pagano sobre insegurança, ansiedade, confiança e os monstros invisíveis que afetam pessoas na tecnologia.
Agent Harness Engineering na prática
Por que o desempenho de agentes de código depende mais do harness do que só do modelo, e como aplicar isso no dia a dia.
Git Worktree: o padrão para tocar múltiplas features e rodar agentes em paralelo
Várias árvores de trabalho, um só repositório. Como o git worktree elimina a troca de contexto destrutiva, roda vários agentes de IA em paralelo e por que venceu o clone manual.
Vibe Coding vs Agentic Engineering
Um olhar rápido e direto sobre a diferença entre vibe coding e agentic engineering.
Evitando agregação em memória e overfetching no MongoDB com Prisma
Começando com Next.js 15
Aprenda a construir aplicações web modernas com Next.js 15, a versão mais recente com App Router e React Server Components.
Dicas de TypeScript para Devs React
Padrões e dicas essenciais de TypeScript para deixar seu código React mais type-safe e fácil de manter.
Como adicionar texto borrado (blurred) em React Native
Uma forma estilosa de esconder informações no seu app React Native usando BlurView.
Organizando seu backend: services ou helpers?
A diferença entre services e helpers, e como organizá-los na estrutura de pastas do seu backend.
Usando for await...of para iterar arrays síncronos e assíncronos em JavaScript
Conventional Commits na prática: padrões para um histórico Git melhor
Guia prático para escrever mensagens de commit melhores usando Conventional Commits — tipos, escopo, exemplos e cheat sheet.
AbortController: gerenciando memória de forma eficiente no React
Como usar AbortController para cancelar requisições fetch e evitar vazamentos de memória em componentes React.
Como validar endereço de entrega nos EUA com JavaScript e React
Duas abordagens para validar shipping address nos EUA: Google Maps Geocoding API e validação no cliente com React Hook Form + Zod.
Compartilhando variáveis de ambiente em um monorepo com Vite e Next.js
Como manter um único arquivo .env.shared no monorepo e gerar arquivos específicos com os prefixos do Vite e do Next.js.
Como aprender rápido
O que é dívida técnica?
Entenda o que é dívida técnica, quando ela acontece e como gerenciá-la para não comprometer a evolução do software.
Como criar um ID aleatório customizado no Postgres
Função auxiliar para criar um ID aleatório customizado como a9Kl12
Web3 - O que construir?
Conheça os tipos de soluções que você pode construir usando a tecnologia web3
Como fazer deploy de um monorepo com TurboRepo no Heroku
Github + Monorepo + TurboRepo + Heroku
Como mesclar dois ou mais repos em um só sem perder o histórico de commits
Tornando-se um Dev fitness
Os cinco hábitos diários que você deveria começar hoje.
React Suspense - do jeito certo
Estudo de caso sobre como usar o React Suspense
Básico sobre a Wax Blockchain
Links úteis e exemplos de código para começar a interagir com a Wax
Como conseguir o primeiro emprego
O que eu digo para os meus mentorados - Dicas para conseguir um emprego
Usando find com a flag delete
Expansion Week na Rocketseat
Ao infinito e além - Segunda edição da EW/RS
Entendendo valores Falsy e Truthy em JavaScript
Ambos os conceitos são muito comuns e essenciais para quem desenvolve em JavaScript. São amplamente usados em aplicações Back-end e Front-end.
Primeira Next Level Week da Rocketseat
Minhas impressões e reflexões sobre o Next Level Week da Rocketseat
Renomeando uma Branch no Git
Comandos para poder renomear uma branch local e remota no repositório git/github
Tipos de Parâmetros das requisições REST
Dicas Rápidas sobre React Native
Link muito bom para aprender usar o Github e Git para contribuir em outros projetos:
Como instalar React Native com TypeScript
Vou mostrar como instalar React Native com TypeScript
Introdução ao GraphQL com NodeJS e MongoDB
Como configurar o webpack, babel e os loaders do css e imagem, principais ciclos de vida do React
Como acessar o Redis de dentro do Docker e fazer consultas
Importar/Exportar arquivos no MongoDB utilizando o Meteor para importação
GoBarber - Aplicação Mobile com React Native
Utilizando ícones do react-native-vector-icons no React Native - ANDROID
Importar/Exportar arquivos no MongoDB utilizando o Meteor para importação
GoBarber Web - Aplicação Frontend com React
Minhas notas de aula e código do bootcamp da Rocketseat, nesse projeto criamos uma API com NodeJS
React Hooks + Redux (useSelector) + Unform
Produtividade com React Hooks + Redux (useSelector) e Unform
API React e Redux Hooks um guia prático
Vamos continuar a aplicação do GoBarber e aprender algumas técnicas avançadas e melhores práticas de desenvolvimento.
Arquitetura Flux um Ecommerce da Rocketshoes
Conheçendo a Lib Polished para manipular cores no JS
Achei bem legal aumentar e diminuir o tom de cores com a lib polished, ela auxilia bem a estilização de componentes com Styled Components
Introdução ao React Native
Como configurar o webpack, babel e os loaders do css e imagem, principais ciclos de vida do React
Utilizando ícones do react-native-vector-icons no React Native - iOS
Importar/Exportar arquivos no MongoDB utilizando o Meteor para importação
Primeiro Projeto com ReactJS
Vamos criar uma aplicação com React e Styled Components que busca o repositório no github e salva no localStorage e podemos ver as Issues no github.
Introdução ao React
Continuando API do GoBarber
Vamos continuar a aplicação do GoBarber e aprender algumas técnicas avançadas e melhores práticas de desenvolvimento.
GoBarber - Aplicação Backend
Minhas notas de aula e código do bootcamp da Rocketseat, nesse projeto criamos uma API com NodeJS
Criando um projeto em NODE
Veja o quão fácil é criar um boiler plate no Visual Studio Code
Conceitos do Node
Apresento o ambiente, conceitos e características do Node, NPM, Yarn, Event Loop, Call Stack e muito mais
Meu Ambiente de desenvolvimento
Ignorando git status quando muda permissão de pastas e arquivos no projeto versionando com git
Se alguém fizer um chmod 777 -Rf * em um projeto num diretório ou ...
Como manter seu repositório atualizado com o projeto principal
Passo a passo para sincronizar seu fork com o repositório original usando git remote, fetch e rebase.
Função de Ordem Superior com Reduce
Função de Ordem Superior com Reduce — Compose do Recompose
Dez Regras para Alcançar a Fluência em Inglês
Li o ebook 10 Rules for Achieving English Fluency e gostei bastante. Compartilho aqui as dez regras, confira:
Funções de Ordem Superior — Modo Fácil
Buscando e Ordenando registros por data no Mongo com Meteor
Buscando e Ordenando registros por data no Mongo com Meteor
Como baixar pacotes npm na rede com proxy
Baixando pacacotes npm dentro de uma rede com proxy
Como instalar Node.js via archive binário no Linux?
Como instalar o Node.js no Linux a partir do archive binário oficial.
Help para aprender inglês
Técnica de interiorização de conteúdo em inglês
Practice Itself
Criando um Code Snippet no VSCode
Veja o quão fácil é criar um boiler plate no Visual Studio Code
Básico sobre Composição de Componentes
Curso Fundação Bradesco, curso online grátis
Como importar e exportar arquivos no MongoDB utilizando o Meteor
Importar/Exportar arquivos no MongoDB utilizando o Meteor para importação
Dica de Leitura - JS Cangaceiro
Dica de Leitura - Cangaceiro Javascript, uma aventura no sertão da programação
Configurando o domínio para o Github Pages
Cientista da Computação
Minha colação de grau em Bacharelado em Ciência da Computação pela Uniderp em Campo Grande/MS
Processamento Paralelo e Sistemas Distribuidos
Projeto chat_ppsd Processamento Paralelo e Sistemas Distribuidos
Livro de lógica com OO em Java
Dica de leitura Aplicando Lógica Orientada a Objetos em Java
Emulando suas aplicações diretamente do celular
Emulando suas aplicações diretamente do celular