Foto de Igor Santos

Igor Santos

Desenvolvedor Full Stack · Agentes de IA (LLMs)

Atuo no desenvolvimento web e mobile, com foco em TypeScript, React, Node.js e React Native. Tenho experiência na integração de agentes de IA (LLMs) em sistemas em produção, na migração de plataformas e na publicação de aplicativos na Google Play. Quando o problema exige, trabalho também com C em sistemas embarcados.

Disponível para oportunidades em desenvolvimento Full Stack, Mobile ou IA aplicada, nos modelos remoto, híbrido ou com realocação.

Destaques

12min · ago/2026 – out/2026

Backoffice editorial com agentes de IA

Migração do backoffice editorial anterior para uma nova plataforma em TypeScript, que ajuda a equipe editorial a transformar livros em microbooks, com texto, narração e capa, em português, inglês e espanhol. Do PDF do livro até a publicação no app, em produção desde ago/2026.

  1. outline
  2. brief
  3. rascunho ⇄ juiz
  4. narração
  5. capa
  6. publicação

TypeScript · Bun · Hono · React 19 · TanStack Query · Tailwind · PostgreSQL · Redis · Docker · bun test · GitHub Actions · Anthropic · Gemini · ElevenLabs

▸ Como foi

Contexto. A 12min já tinha um backoffice editorial. O trabalho foi migrá-lo, com seus agentes de IA, para uma nova plataforma em TypeScript, mantendo a operação da equipe editorial durante a transição.

Meu papel. Fui o principal desenvolvedor da migração, trabalhando junto com o time e com a equipe editorial que usava a ferramenta todo dia.

O que fiz.

  • Adaptação do código legado para TypeScript, incluindo a cadeia de agentes em etapas, com prompts versionados.
  • Criei as salvaguardas editoriais do conteúdo de atualidade: o LLM juiz manda para revisão humana, antes da publicação, o que é sensível (política, economia, polêmica, celebridades).
  • Adicionei à narração por IA (ElevenLabs) um léxico de pronúncia que o próprio editor edita, sem depender de desenvolvedor.
  • Fiz o painel de entregas e gastos da operação de IA, dando visibilidade ao custo da operação, e a API do "livro do dia" no app principal (Ruby).
  • Escrevi testes automatizados (bun test) para agentes, contratos e repositórios de banco, rodando no CI (GitHub Actions) com PostgreSQL real a cada mudança.

Resultado. A migração não interrompeu a operação: a equipe editorial seguiu no legado até a nova plataforma assumir, em produção desde ago/2026.

O que aprendi.

  • Colocar IA em produção é muito mais do que chamar uma API. A maior parte do trabalho é entender quando a IA acerta, quando erra e quando uma pessoa precisa revisar.
  • Ouvir quem usa o sistema todo dia ensina mais do que qualquer documentação. Boa parte das melhorias veio dessas conversas.
  • Testar com casos reais antes de dar algo como pronto.

Sistema interno: sem telas públicas.

Ícone do app NomeBr

App mobile · Google Play

NomeBr

App para explorar os nomes do Brasil com dados do IBGE: descubra nomes únicos e populares.

React Native · Expo · TypeScript · MVVM · AdMob

▸ Como foi

Meu papel. Projeto pessoal, feito do zero até a publicação na Play Store.

Decisões. Arquitetura MVVM para separar a lógica das telas, dados do IBGE pré-filtrados num JSON que vai junto com o app e monetização com AdMob.

O que aprendi. Publicar um app vai além do código: revisão da loja, política de privacidade, anúncios e atualização de versão fazem parte do produto.

Open source · IA

WhatsApp MCP local

Tornei funcional um servidor MCP open source de WhatsApp que tinha parado e adicionei transcrição local de áudio com whisper.cpp.

Go · Python · SQLite · whisper.cpp · MCP

▸ Como foi

Contexto. O servidor recebia erro 405 ao conectar e 403 em toda mídia.

O bug mais difícil. Áudios trocavam de mensagem sem nenhum erro no log: o nome do arquivo vinha do horário (time.Now()), e a sincronização baixa dezenas de áudios no mesmo segundo. Todos acabavam apontando para o primeiro arquivo. Passei a nomear pelo ID da mensagem.

O que aprendi. Bug silencioso é o pior bug. Só dei como resolvido depois de conferir que cada áudio tinha hash e transcrição diferentes.

Open source · Depuração

Bot de transcrição do Google Meet (Vexa)

Encontrei a causa raiz de um bug que impedia o bot do Vexa de entrar logado no Meet, provei com experimento controlado e corrigi. Também fiz a transcrição em tempo real rodar só em CPU, sem GPU.

TypeScript · Docker · Chromium · Whisper

▸ Como foi

Contexto. O bot autenticado caía sempre como "sessão ausente", mesmo com o login salvo.

Processo. Em vez de mexer em várias coisas ao mesmo tempo, mudei uma variável por vez até isolar a causa: o navegador subia em modo anônimo (--incognito) e descartava a sessão salva.

Resultado. Bot entrando logado e transcrevendo a reunião ao vivo, rodando em máquina sem GPU.

Competências

Linguagens
TypeScript, JavaScript, Python, C, Go
Front-end e mobile
React, React Native, Expo, TanStack Query, Tailwind
Back-end e dados
Node.js, Bun, Hono, APIs REST, PostgreSQL, Redis, filas de jobs, Docker, testes automatizados (bun test), CI com GitHub Actions
IA
Agentes LLM (Anthropic, Gemini), engenharia de prompt, LLM como juiz, text-to-speech, Whisper, MCP

Trajetória

Projetos da faculdade

Hospedados em plano gratuito: a primeira visita pode levar até um minuto para abrir.

Vamos conversar?

Procuro vaga Full Stack, Mobile ou de IA aplicada.