Ir para o conteúdo

João Pedro
Vale

Engenheiro e arquiteto de software

Designação
JPMV-01
Revisão
08
Folha
1 de 6
Local
São Luís, MA — BR
Últ. revisão
Ago 2026

1Descrição geral

Construo software profissionalmente desde 2017. Comecei montando cenários de realidade virtual no Maranhão e hoje trabalho em sistemas distribuídos que rastreiam milhões de entregas de e-commerce por dia: arquitetura orientada a eventos, integrações com APIs privadas de transportadoras e a disciplina chata de manter tudo isso de pé quando o volume não pede licença.

Passei por software house, produto de dados públicos, mineradora e logística. Isso me deu repertório em diferentes camadas da stack — o back end é minha especialidade, o front end é terreno familiar, e a arquitetura vem antes de escrever qualquer um dos dois.

Características

  • 01Arquitetura orientada a eventos em escala de milhões de eventos por dia
  • 02Agentes de IA em produção: MCP, tool calling e orquestração
  • 03Back end em Node.js/NestJS, Golang, Python, PHP e C#
  • 04Coleta e extração de dados de fontes públicas em larga escala
  • 05Sete posições em seis organizações desde 2017
  • 06Português nativo, inglês fluente, espanhol intermediário
João Pedro Vale
Fig. 1 — EncapsulamentoSão Luís, MA. Trabalho remoto desde 2021.

2Diagrama funcional — engenharia de agentes

Uma parte crescente do meu trabalho é engenharia de agentes: sistemas em que o modelo decide o próximo passo e a engenharia garante que ele possa errar sem derrubar nada. Construo e opero agentes em produção no trabalho, e também em projetos próprios e de clientes.

O diagrama abaixo é como eu monto. O modelo é um componente, não o sistema. O que sustenta um agente é a camada de ferramentas, o loop de avaliação e a observabilidade — a mesma disciplina que se usa para manter uma integração crítica de pé.

INTENÇÃOORQUESTRADORMODELOFERRAMENTAS · MCP1SISTEMASRESULTADOGUARDRAILS4AVALIAÇÃO2OBSERVABILIDADE3
Fig. 2 — Topologia típica de um agente em produção

Notas de aplicação

  1. A camada de ferramentas é o contrato. Cada ferramenta tem escopo fechado, validação de entrada e um modo de falha previsível — o agente não decide o que pode fazer, a ferramenta decide.

  2. Sem avaliação, mudar um prompt é mudar sem teste. Cada alteração passa por casos registrados antes de ir para produção.

  3. Observabilidade por execução: traço de cada chamada, custo por passo e o motivo de cada decisão. Sem isso, depurar um agente é adivinhação.

  4. Guardrails definem o que é irreversível. Ação destrutiva pede confirmação humana; o resto o agente resolve sozinho.

3Aplicações típicas

Produtos que projetei, construí e opero sozinho, do domínio ao deploy. Não são exercícios: rodam, têm usuário e continuam recebendo commit.

  • APP-01

    coda

    Em operação

    Rede social de avaliação de mídias — um Letterboxd da música. Notas de 0,0 a 10,0, resenhas e o histórico de como a sua opinião sobre uma obra muda com o tempo, num feed do que quem você segue está avaliando.

    API e worker em NestJS compartilhando os mesmos módulos de domínio, front em Next.js. O catálogo é canônico e cresce guiado por interesse real: importa discografias da MusicBrainz sob demanda e enriquece com capas e biografias. Métricas e logs em Grafana Alloy.

    Stack

    TypeScript · NestJS · Next.js · Worker · Docker · Grafana Alloy · MusicBrainz

    Código
    Fechado
  • APP-02

    kindred

    Em operação

    Cadastro de pessoas e dos vínculos entre elas. A partir de uma pessoa central, calcula sozinho o grau de parentesco de todo mundo — avó, tio, primo em 2º grau —, desenha a árvore genealógica navegável e reúne os aniversários num calendário.

    O cálculo de parentesco é o coração do domínio e roda sobre um grafo de vínculos em PostgreSQL. Monorepo com o schema e o contrato da API isolados em pacotes compartilhados entre a API e o front.

    Stack

    TypeScript · NestJS · Prisma · PostgreSQL · React · Vite

  • APP-03

    expense-analyzer

    Em operação

    Dashboard de gastos de cartão de crédito: as faturas em CSV viram um banco de compras, a API agrega por mês e por categoria, e o front mostra em tabelas e gráficos como o gasto evolui.

    O parser não é acoplado a nenhum emissor — lê qualquer CSV com data, descrição e valor. Extractor, API e front são aplicações separadas no mesmo monorepo, com a infraestrutura versionada junto.

    Stack

    TypeScript · NestJS · MongoDB · React · Docker

4Características técnicas

Ferramentas que uso em produção, agrupadas por função. A lista é o que eu abriria hoje sem consultar documentação.

ParâmetroSímb.Valores
Back endBENode.js · NestJS · Golang · Python · PHP/Laravel · C#/.NET
Front endFEReact · Next.js · Vue.js · React Native · Tailwind · TypeScript
DadosDBPostgreSQL · MongoDB · Redis · MySQL · SQL Server · Elasticsearch
InfraestruturaOPSAWS · Azure · GCP · Docker · CI/CD · Kafka
IA e agentesAIMCP · Tool calling · RAG · Evals · OpenAI · Claude · Gemini
ArquiteturaARCHEvent-driven · Microservices · Modular monolith · Serverless · Observability
Extração de dadosETLCrawlers · Web scraping · Pandas · Pipelines
IdiomasLNGPortuguês (nativo) · Inglês (fluente) · Espanhol (intermediário)

5Histórico de revisões

Sete posições desde 2017. Abra uma linha para ver o que ela envolveu.

  • Pelotas, RS

    Responsável pelo rastreamento de milhões de entregas de e-commerce por dia. Arquitetura orientada a eventos para comunicação assíncrona e serviços robustos de integração com as APIs privadas das transportadoras, dentro de um sistema de alta disponibilidade.

    Stack

    NestJS · Golang · MongoDB · AWS · Laravel · Event-driven

6Informações de contato

Disponível para posições remotas e para projetos. Respondo e-mail em até 24 horas.

CódigoCanalEndereço
EMLE-mailjpmvale@gmail.com
WPPWhatsApp+55 98 99245-1236
LKDLinkedIn/in/joao-pedro-vale
GHBGitHub/jpmvale
PDFCurrículocv.pdf