Pular para o conteúdo
/thiago.lu

Trabalho e estudos

Projetos

O que executei em cliente e o que construí por conta, das integrações e migrações à automação com agentes.

Ler o case: migração com paridade provada 

24 projetos 9 aprendizados em IA 42 ferramentas currículo para baixar

Ferramentas

A mais usada de cada grupo.

Anthropic API

Engenharia de IA

Ruby

Linguagens

Ruby on Rails

Back-end, APIs e front

PostgreSQL

Dados

AWS

Infra e deploy

TDD

Integração, migração e garantias

Ver as 42, com a contagem de projetos 

24 projetos

Integrações e Migrações

Migração de aplicação Node.js para Rails 7

Fintech de crédito ao consumidor (EUA)

Mover uma aplicação Node.js para Rails 7 sem parar a operação, provando paridade de comportamento (replay de requisição + switch por API) antes de virar a chave.

Ler o case

Desenvolvedor Rails (Contrato via Toptal)

Ruby on Rails 7 · Node.js · Contract Testing

código privado

2023 · Ruby on Rails 7 +2

IA e automação

PrivateOS, servidor pessoal de agentes de código

Agentes que trabalham a partir de um quadro. Mover um card no GitHub Projects dispara um webhook assinado, o job entra numa fila e um worker sobe o agente numa worktree separada do git, que abre o pull request. Cada um dos doze papéis tem teto próprio de custo, de tempo de parede e de ferramentas.

TypeScript · Claude Agent SDK · MCP · PostgreSQL · React

pesquisa código privado

2026 · TypeScript +4

IA e automação

NPCs de um jogo respondendo por modelo, com memória

Servidor de Open Tibia local em que os NPCs respondem por modelo em vez de árvore de palavra-chave. O Lua do jogo chama uma ponte em Python de forma assíncrona e a resposta volta pela thread do mundo, então o modelo nunca é chamado de dentro do jogo e nada congela. A memória de longo prazo fica em Postgres com pgvector. Conversa parada vira resumo, e o resumo mais próximo volta na conversa seguinte. Cada tarefa tem teto de custo e de turnos.

Python · FastAPI · Anthropic API · pgvector · C++

código privado

2026 · Python +4

IA e automação

Fonte, extrato em PDF virando lançamento conferido

Um layout novo é lido pelo modelo uma vez, o mapeamento é confirmado num passo a passo e vira um template determinístico, indexado por uma impressão digital do formato que normaliza os dígitos. Sem isso, trocar de mês já mudaria o layout aos olhos do sistema. Reimportar aquele layout roda o template e não chama o modelo. Nada entra no ledger sem fechar com os totais impressos no documento, com dois centavos de tolerância e uma única rodada de correção.

Ruby on Rails · PostgreSQL · Anthropic API · Hotwire

em desenvolvimento código privado

2026 · Ruby on Rails +3

Integrações e Migrações

Motor de análise e concessão de crédito

Fintech de crédito ao consumidor (Brasil)

Sistema ponta a ponta: ingestão e validação dos leads, consulta a três bureaus de crédito, integração com o CRM, com o ERP e com o WhatsApp, data lake no BigQuery, e o motor que decide a concessão em cima disso. Depois da liberação, o acompanhamento dos contratos e das parcelas.

Engenheiro de software (Projeto)

Ruby · Python · BigQuery · Serasa

código privado

2025 · Ruby +3

Integrações e Migrações

Migração de base de usuários com autenticação cross-platform

E-commerce de saúde (EUA/Canadá)

Bases de usuários e histórico migradas entre plataformas mantendo a integridade dos dados e a autenticação funcionando para múltiplas coortes durante toda a transição. Ninguém precisou refazer login.

Desenvolvedor full-stack (Contrato via Toptal)

Ruby on Rails · React · GraphQL · AWS Lambda

código privado

2024 · Ruby on Rails +3

Integrações e Migrações

Migração de servidor com 1,2 TB de arquivos

Laboratório de patologia (EUA)

A aplicação ficou instável depois da troca de Ubuntu 16 para 20. Análise de causa raiz, correção do provisionamento com Ansible e NGINX, e a migração e sincronização de 1,2 TB de arquivos entre os servidores.

Desenvolvedor Rails (Contrato via Toptal)

Ruby on Rails · Ansible · NGINX · Ubuntu Server

código privado

2023 · Ruby on Rails +3

Integrações e Migrações

API de ingestão e enriquecimento de dados

Plataforma de staffing em saúde (EUA)

Integração com API de terceiro para alimentar a base do produto, junto com os upgrades de Rails 4.2 para 5.1 numa aplicação em produção.

Desenvolvedor Ruby on Rails sênior (Contrato via Toptal)

Ruby on Rails · React · Heroku · TDD

código privado

2022 · Ruby on Rails +3

Integrações e Migrações

API pública e migração de REST para GraphQL

Software para construção civil

A API pública do sistema de gestão de obras, com integração de negócio com os principais ERPs do mercado de construção. Junto veio a migração da API REST legada para GraphQL, trocando lógica de controllers por serviços e adapters.

Head of Product

Ruby on Rails · GraphQL · PostgreSQL

código privado

2020 · Ruby on Rails +2

Integrações e Migrações

Integração customizada com ERP de franquia

Franquia de alimentação

Integração sob medida para eliminar processos manuais da rotina administrativa: conecta os sistemas da operação, processa a informação e lança os dados de venda direto no ERP.

Ruby · Integração de APIs

código privado

Ruby +1

Integrações e Migrações

Sincronização entre CRM e data warehouse

Fintech de crédito ao consumidor (Brasil)

Serviço em TypeScript no Cloud Run que sincroniza o CRM e o data warehouse incrementalmente, com reconciliação diária para os eventos que os webhooks perdem.

Engenheiro de software (Projeto)

TypeScript · BigQuery · Cloud Run · Pipedrive API

código privado

2025 · TypeScript +3

Produtos e ferramentas

Power BI substituído por API própria em Cloud Functions

Construção civil

Power BI Embedded no Azure substituído por uma API de dashboard em Python no GCP Cloud Functions, consumida por um app Vue com Highcharts. Saiu a licença e saiu o lock-in.

Python · GCP Cloud Functions · Vue · Highcharts · PostgreSQL

código privado

Python +4

Produtos e ferramentas

Painel de posição de palavras-chave

Plataforma de marketing digital

Refatoração do sistema legado de acompanhamento de posição de palavras-chave, com arquitetura serverless em AWS Lambda e Fargate para escala, e integração com o provedor de dados de custo por palavra-chave.

Desenvolvedor full-stack

Ruby on Rails · AWS Lambda · Fargate · PostgreSQL

código privado

2017 · Ruby on Rails +3

Produtos e ferramentas

App de agendamento de aulas particulares

Educação

PWA em Vue no Firebase com API Rails no Heroku. Front e back do zero, com perfis de aluno, professor e admin, gestão de disponibilidade de salas e agenda, e gateway de pagamento para compra de créditos.

Vue.js · PWA · Firebase Hosting · Ruby on Rails · Heroku

código privado

Vue.js +4

IA e automação

Comitê Financeiro: 13 agentes para teses de investimento

Gestão de investimentos

Treze agentes que ingerem relatórios e indicadores consumidos por APIs e sintetizam teses sobre mercados e classes de investimento, para sustentar a decisão de alocação.

Ruby · APIs de mercado

em desenvolvimento código privado

2026 · Ruby +1

IA e automação

Boilerplate Rails para desenvolvimento conduzido por agente

Starter de Rails com o que um agente precisa para implementar uma feature sozinho. Dois geradores (estrutura de agente e servidor MCP com registro de ferramentas e testes), um mapa de contexto que se regenera a partir do schema e das rotas, e um laço que lê um RFC em Markdown e só marca a tarefa quando o teste passa.

Ruby on Rails · PostgreSQL · MCP · pgvector

pesquisa código privado

2026 · Ruby on Rails +3

Dados

Plataforma unificada de dados, na fase de projeto

Data lake pessoal para domínios que não conversam (clima, esportes, mercados de previsão, cripto), em torno de um registro único de entidade, métrica, tempo, valor e contexto. Hoje o repositório é só documento, e a regra escrita nele é que nenhum código de produção sai antes de o desenho fechar. A execução vai em sessões de agente, uma por cartão, com decisão registrada em ADR numerado.

Claude Code

pesquisa código privado

2026 · Claude Code

Mercados e finanças

Plataforma quant: da hipótese à execução

Três motores sobre contratos versionados. Scouting ingere dado macro e roda treze agentes de pesquisa que emitem candidatos com o null implícito do mercado. Testing pré-registra a hipótese e devolve veredito contra um null declarado antes, líquido de custo e com correção de overfitting. Trading executa atrás de um adaptador de venue, e continua em dry-run: a máquina está provada, a vantagem não.

Ruby on Rails · Python · PostgreSQL · APIs de mercado

em desenvolvimento código privado

2026 · Ruby on Rails +3

Mercados e finanças

PAUPIT, mercado de previsão com liquidação onchain

Mercado de previsão em testnet, com preço saindo de uma implementação própria de LMSR em Solidity, em ponto fixo. Cota e dólar têm escalas de casas decimais diferentes, convertidas dentro do contrato. Cada mercado é um contrato criado por uma factory, com janela de disputa e caução antes da liquidação.

Solidity · TypeScript · Next.js

código privado

2026 · Solidity +2

Ferramentas

Gestor de uma coleção de vinil compartilhada

Quem é dono de cada disco, onde ele está e em que ponto da escuta está, num quadro de garimpo. A coleção vive no navegador e continua utilizável sem rede, e o servidor existe só para o que não pode ficar no cliente. A sincronização com o catálogo externo nunca sobrescreve posse, localização e empréstimo, que são anotação à mão.

SvelteKit · TypeScript · WebRTC

código privado

2026 · SvelteKit +2

Ferramentas

Painel de condições de voo

Recebe um número de voo e monta a rota, o boletim meteorológico das duas pontas e o vento em altitude no caminho. Três APIs de terceiro alimentam a página, cada uma com cache e política de repetição própria. Cada bloco degrada sozinho e informa o que faltou.

Ruby on Rails · PostgreSQL · Claude Code

em desenvolvimento código privado

2026 · Ruby on Rails +2

Ferramentas

De um artigo para um vídeo narrado

Linha de comando que recebe um paper, um PDF ou uma URL e devolve um MP4 de 1080p. O pacote com o texto e os dados conferidos é congelado antes de existir roteiro, e a ordem de produção — marca, tela, corte, gramática — é resolvida uma vez e gravada. Depois vêm as travas, a narração, os gráficos e a montagem. O modelo é obrigado ao schema; não existe parsing de texto solto.

Python · Gemini API · TypeScript

código privado

2026 · Python +2

Jogos

Hero defense com torres em maze livre

Herói controlado pelo jogador defendendo um castelo, com torres posicionadas em maze livre e caminho refeito por A* a cada mudança. Build de cartas por partida e um modo semi-infinito jogado por placar. A suíte roda headless em sete segundos, e nenhuma checagem entra sem antes ter falhado de propósito contra o código que ela protege.

GDScript · Claude Code

pesquisa código privado

2026 · GDScript +1

Jogos

Arena 1v1 com luta verificável

Motor de batalha determinístico. Mesma semente e mesma configuração dão o mesmo resultado em qualquer máquina. Dá para reexecutar a luta a partir da configuração e conferir o resumo criptográfico do que aconteceu. A interface só assiste.

TypeScript · React

pesquisa código privado

2026 · TypeScript +1

Aprendizados em IA

9 lições

O que está em produção

Decisões que se repetem em todo projeto com modelo no meio do caminho. Cada uma saiu de um projeto desta página.

  • Cada um dos doze papéis tem limite de gasto, de tempo de parede e da lista de ferramentas que pode chamar.
  • Papel novo entra semeado com teto zero, desligado por configuração.

PrivateOS, servidor pessoal de agentes de código · NPCs de um jogo respondendo por modelo, com memória

  • Leitura e escrita são sessões separadas.
  • A sessão de leitura custa centavos e devolve um plano.
  • As ferramentas de escrita abrem depois da aprovação, e aprovação pendente expira sozinha.

NPCs de um jogo respondendo por modelo, com memória · Fonte, extrato em PDF virando lançamento conferido

  • A resposta do modelo entra como proposta e passa por uma conferência que existiria mesmo sem IA.
  • No Fonte, lançamento que não fecha com os totais impressos no documento não entra.
  • A rodada de correção é uma só.

Fonte, extrato em PDF virando lançamento conferido

  • Número que sai do modelo é texto: ele devolve o que está escrito, e nada mais.
  • Converter, arredondar e somar é código determinístico.
  • O parser é sensível a formato brasileiro e tem teste em cima.

Fonte, extrato em PDF virando lançamento conferido · De um artigo para um vídeo narrado

  • Ingerir um relatório em PDF custou dois dólares, e o PDF não era complexo.
  • Layout novo é lido uma vez pelo modelo, e o mapeamento confirmado vira um template indexado por uma impressão digital do formato, que normaliza os dígitos.
  • Da segunda importação em diante roda como código comum, e o custo por documento vai a zero.

Fonte, extrato em PDF virando lançamento conferido

  • Conversa parada é resumida em fatos.
  • O que volta depois são os resumos mais próximos do assunto, por distância no Postgres com pgvector.
  • Entre execuções, o aprendizado vira arquivo curto, escrito quando o pull request é aceito.

NPCs de um jogo respondendo por modelo, com memória · PrivateOS, servidor pessoal de agentes de código

  • Dois subagentes no mesmo diretório: um limpou o repositório e levou junto o trabalho não commitado do outro.
  • Cada execução passou a ter worktree própria.
  • O que precisa tocar a mesma árvore roda em série.

PrivateOS, servidor pessoal de agentes de código

  • Registro de ferramentas, códigos de erro definidos, e a lista do que cada papel pode chamar.

PrivateOS, servidor pessoal de agentes de código · Boilerplate Rails para desenvolvimento conduzido por agente

  • Quando o modelo ou uma API de terceiro cai, a tela mostra o que veio e informa a ausência.
  • No painel de voo, sem o vento em altitude o resto da página renderiza.
  • No gerador de vídeo, roteiro e narração derrubam a execução em vez de entregar um vídeo mudo.

Painel de condições de voo · De um artigo para um vídeo narrado

Ferramentas

2015–2026

Engenharia de IA

  • Extração de documento com a saída presa a schema
  • Conferência por invariante antes de a saída virar dado
  • Template determinístico depois da primeira leitura, para não chamar o modelo de novo
  • RAG sobre base de código e documento sensível
  • Memória de longo prazo por resumo e busca vetorial
  • Orquestração de agentes em paralelo, isolados por worktree
  • Teto de custo, de tempo e de ferramenta por papel
  • Servidor MCP próprio, com gate por papel e sandbox no banco
  • Agente disparado por evento, com fila, worker e pull request no fim
  • Eval e guardrail de regressão
  • Chamada assíncrona, fora do caminho crítico da aplicação
  • Prompt sob controle do especialista do domínio, não da engenharia
  • Troca de provedor de modelo sem tocar em quem consome

Anthropic API

Claude Code

MCP

Claude Agent SDK

Gemini API

Linguagens

  • Tipagem gradual sobre base legada
  • Suíte de teste e TDD como rede para refatorar
  • Teste que precisa falhar de propósito antes de entrar
  • Motor determinístico: mesma seed, mesmo resultado em qualquer máquina
  • Aritmética de ponto fixo e conversão de escala decimal em contrato
  • Binding nativo dentro de servidor de jogo
  • Suíte headless rodando em segundos, para caber no laço do agente

Ruby

JavaScript

TypeScript

Python

C++

GDScript

Solidity

Back-end, APIs e front

  • Integração escrita para o outro lado cair: retry, idempotência e reconciliação
  • Webhook de entrada e de saída, com repasse conferido
  • Reconciliação periódica do evento que o webhook perdeu
  • API pública consumida por parceiro, e integração de negócio com ERP
  • Migração de REST para GraphQL, trocando controller por serviço e adapter
  • Rails engine acoplada à aplicação de terceiro
  • Upgrade de Rails major com a aplicação em produção
  • Autenticação cross-platform, com coortes convivendo na transição
  • Background job e processamento pesado fora do ciclo de request
  • Logging estruturado e investigação de bug de baixa frequência
  • Test coverage em base legada, até o deploy virar rotina
  • Automação por bot onde o parceiro não tem API
  • Migração de front entre frameworks, com o produto no ar
  • Front offline-first, utilizável sem rede

Ruby on Rails

React

Sidekiq

GraphQL

Vue

Vuetify

REST APIs

FastAPI

Hotwire

Next.js

Node.js

SvelteKit

WebRTC

Highcharts

PWA

Dados

  • Data lake estruturado do zero, do dado cru à decisão automatizada
  • Sync incremental entre o sistema de operação e o warehouse
  • Registro único para domínios que não conversam: entidade, métrica, tempo, valor e contexto
  • Row-Level Security dentro do banco
  • Série temporal em hypertable
  • Índice vetorial para busca semântica
  • Ajuste de query e de índice até o SLA de resposta
  • Ingestão de API de terceiro com cache e retry policy próprios
  • Migração de base entre plataformas preservando integridade

PostgreSQL

BigQuery

pgvector

Infra e deploy

  • Dimensionamento de infra pela fatura, não pelo pico teórico
  • Container com scale-to-zero onde o tráfego permite
  • Provisionamento à mão onde scale-to-zero não serve
  • Arquitetura serverless para carga em rajada
  • Pipeline de CI/CD com deploy automatizado
  • Agente rodando dentro do pipeline, com a aprovação humana no merge
  • Root cause de instabilidade depois de troca de sistema operacional
  • Migração e sincronização de grande volume de arquivo entre servidores
  • Substituição de ferramenta licenciada por serviço próprio, para sair do lock-in

AWS

Google Cloud

Docker

Heroku

Ansible

NGINX

Ubuntu Server

CI/CD

Firebase Hosting

Integração, migração e garantias

  • Paridade provada por replay de request real contra as duas versões
  • Feature switch por API para virar a chave e para voltar
  • Shard sincronizado com shadow database, para conferir a migração em produção
  • Plano de rollback escrito antes do corte
  • Aplicação inteira migrada entre linguagens, com a operação no ar
  • Levantamento das dependências reais antes de desenhar o corte
  • Integração com ERP, laboratório clínico e bureau de crédito
  • Troca de mensagem clínica em HL7
  • Reconciliação de dois modelos de dados depois de aquisição
  • Root cause com documento de investigação e quebra de tarefa para o time

TDD

Contract Testing

Serasa