Apresentação
João Pombo
Desenvolvedor full stack, com foco em back-end.
Construo e opero sistemas em produção: financeiro, CRM, tarefas e portal do cliente.
Projetos em destaque
ViaClientes
ViaClientesEm produção
Plataforma de gestão de clientes da VIA, um SaaS single-tenant em produção.
Módulos
- Financeiro: contratos, cobranças e baixas
- CRM de prospecção
- Tarefas e agenda
- Portal do cliente
- Relatórios
- Roteiros de conteúdo
Integrações
- Meta Ads e Vercel, via API
- Rotinas agendadas (cron) e webhooks
Stack
- TypeScript
- Next.js (App Router, Server Components e Server Actions)
- Drizzle ORM
- PostgreSQL (Neon)
- Clerk
- Tailwind e shadcn/ui
- Deploy na Vercel
Decisões de arquitetura
- Módulos em fatias verticais, cada um com uma porta pública única.
- Acesso ao banco só pela camada de dados, com a autorização verificada dentro de cada função.
- DTOs em vez de linhas cruas do banco.
- Sem acoplamento por dados entre módulos.
- Situação financeira derivada, em vez de guardada.
Integração com a Meta Ads
Integração com a Meta Ads
Módulo do ViaClientes que lê as campanhas de anúncio dos clientes direto da API da Meta e transforma os números em gestão para a equipe e em relatório para o cliente.


# Dados do cliente borrados.
O que faz
- Quadro de campanhas por ritmo: acima da meta, no ritmo, abaixo da meta, parada ou sem entrega
- Avisos em cada campanha: custo por lead subiu ou caiu, meta batida, sem entrega, atrasada
- Meta de leads por dia definida pela equipe; sem ela, o ritmo é medido contra a média dos últimos 7 dias
- Relatório no portal do cliente, com comparação com o período anterior e os anúncios que mais trouxeram leads
Decisões técnicas
- Campanhas, gasto e leads são lidos ao vivo da Insights API, com cache de 15 minutos; só a meta de leads mora no banco.
- O token da Meta fica no servidor e nunca entra no DTO da página.
- Paginação com teto de páginas, para a consulta não virar um laço sem fim.
- O período personalizado nasce da URL, então é validado e limitado a 90 dias antes de virar consulta.
- A Meta entrega as imagens dos criativos em URLs que expiram: o sistema baixa cada uma para um Blob privado depois da resposta, e só as que a tela mostra.
- A conta de anúncio sai do acesso conferido no servidor, não da URL: trocar o id no endereço não abre a conta de outro cliente.
- Ritmo, comparação de períodos e custo por lead são funções puras, cobertas por testes.
Sistema interno de pedidos e despesas
Sistema interno de pedidos e despesasEm produção
Sistema interno em produção para uma empresa de iluminação e decoração.


# Dados do cliente borrados.
Problema
- Pedidos de prazo longo se perdiam e se desorganizavam até a entrega.
O que resolve
- Acompanhamento organizado dos pedidos do início à entrega
- Organização das notas fiscais para conferência
- Organização da compra de produtos
Detalhes técnicos
- Autenticação própria: senhas derivadas e sessões revogáveis no banco
- Comprovantes privados no Vercel Blob, entregues por rota autenticada
- Leitura do XML das notas fiscais
- Migrações rodam no build de produção; se falharem, a versão anterior continua no ar
- Avisos por web push e resumos agendados (cron)
Stack
- TypeScript
- Next.js (App Router)
- React
- Drizzle ORM
- PostgreSQL (Neon)
- Zod
- Vercel Blob
- Tailwind CSS
- Vitest e Playwright
- Deploy na Vercel
Sites, landing pages e e-commerce
# Uma loja virtual completa, um site de conversão e landing pages, todos em produção.
moikato/
E-commerce completo: começou como página e virou a loja inteira.


tardinha/
Landing pages para venda de ingressos de um evento.




Experiência
- [Desde 2024]VIA · CTO e desenvolvedorConstrução e operação de sistemas internos e para clientes.
- [Mar a set de 2026]Agenc.ia · Full stack
- [Out de 2025 a ago de 2026]Smile University · Full stack e arquitetura de sistemas
- [2022 a 2023]BRF · RPA DeveloperUiPath.
- formação:
- Engenharia Elétrica
- idiomas:
- Inglês fluente; espanhol e japonês intermediário
Stack
- "TypeScript"
- "Next.js"
- "React"
- "Node.js"
- "PostgreSQL"
- "Drizzle ORM"
- "Clerk"
- "Tailwind CSS"
- "Vercel"
- "Git/GitHub"