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

  1. Módulos em fatias verticais, cada um com uma porta pública única.
  2. Acesso ao banco só pela camada de dados, com a autorização verificada dentro de cada função.
  3. DTOs em vez de linhas cruas do banco.
  4. Sem acoplamento por dados entre módulos.
  5. 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.

Quadro de campanhas com as colunas acima da meta, no ritmo, abaixo da meta e parada ou sem entrega, seletor de dia, semana e mês e alternância entre quadro e tabela; nomes e números aparecem borrados
# Cada campanha na coluna do seu ritmo, com avisos e custo por lead.
Relatório de campanhas com indicadores de leads, custo por lead, investimento e CTR, gráfico de leads por dia e lista de campanhas da que mais trouxe lead para a que menos trouxe; números e nomes aparecem borrados
# Relatório do período: leads, custo, investimento, CTR e campanhas.

# 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

  1. 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.
  2. O token da Meta fica no servidor e nunca entra no DTO da página.
  3. Paginação com teto de páginas, para a consulta não virar um laço sem fim.
  4. O período personalizado nasce da URL, então é validado e limitado a 90 dias antes de virar consulta.
  5. 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.
  6. 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.
  7. 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.

Quadro kanban do sistema com os pedidos divididos nas etapas orçamento, negociação, fechado, em obra, compras, instalação e finalizado; nomes e valores aparecem borrados
# Pedidos por etapa, do orçamento à entrega.
Detalhe de um pedido com as abas resumo, atividades, itens, orçamentos, notas e recibos e histórico, indicadores de itens, entregas, custo, margem e entrega prevista, e o campo para anexar nota, PIX ou recibo; código, cliente e valores aparecem borrados
# Um pedido por dentro: itens, orçamentos, notas e recibos e histórico.

# 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.

Experiência

  1. [Desde 2024]VIA · CTO e desenvolvedorConstrução e operação de sistemas internos e para clientes.
  2. [Mar a set de 2026]Agenc.ia · Full stack
  3. [Out de 2025 a ago de 2026]Smile University · Full stack e arquitetura de sistemas
  4. [2022 a 2023]BRF · RPA DeveloperUiPath.
formação:
Engenharia Elétrica
idiomas:
Inglês fluente; espanhol e japonês intermediário

Stack

{
"stack": [
  • "TypeScript"
  • "Next.js"
  • "React"
  • "Node.js"
  • "PostgreSQL"
  • "Drizzle ORM"
  • "Clerk"
  • "Tailwind CSS"
  • "Vercel"
  • "Git/GitHub"
]
}

Contato