Ir para o conteúdo
MP

Matheus Pavaneli

Engenheiro fullstack sênior · forward-deployed AI engineer

Me dê o sistema que ninguém quer assumir.

Pego o que está quebrado, o que foi abandonado e o que ainda não existe — inclusive os sistemas de LLM que uma empresa está colocando em produção pela primeira vez — e devolvo uma arquitetura, com o número que ela moveu.

Disponível em 7 a 14 dias · contractor, EOR ou contratação direta · qualquer fuso dos EUA

Agora
Senior Software Engineer · Bernoulli Educação, EdTech
Stack principal
TypeScript · Python · Node/NestJS · React/Next · PostgreSQL · AWS
Trabalha de
Maringá, Brasil · UTC−3 · remoto · qualquer fuso dos EUA · inglês C1

Leituras

Razão, escala log

1×2×5×10×20×
Leituras de antes e depois de cada caso, num único eixo logarítmico de razão

Cada barra é o quanto um número se moveu, numa única escala logarítmica compartilhada — os comprimentos se comparam entre casos, e nenhum foi reescalado para parecer melhor. Um limite que se manteve, ou um número só, é dito em vez de desenhado.

Casos

9

O que cada um foi, de fato.

Primeiro o trabalho em produção, depois os meus projetos. Cada um com antes e depois.

Em produção

Sistemas de LLM em produção

A primeira feature de IA da empresa, construída para que nenhum fornecedor sozinho consiga derrubá-la

Bernoulli Educação · EdTech, mais de 100 mil alunos

razão: 10.0×

2025 – hoje

Desenhei e entreguei a arquitetura de orquestração: um orquestrador roteando requisições entre agentes especializados, failover de provider para que a indisponibilidade de um fornecedor não derrube a feature, e uma camada MongoDB carregando retrieval de documentos, logs de execução dos agentes e um cache de resposta que corta o custo de inferência repetida. O provider não foi escolhido por reputação — cinco modelos foram testados em custo, latência e qualidade de saída, e os números escolheram um. Em produção atende mais de 100 mil usuários, com latência 90% menor e custo 40% menor.

Stack: LLM orchestrationMulti-agent routingProvider failoverMongoDBNestJS

A query de dois segundos

O planner não estava lento. As estatísticas dele estavam velhas.

Bernoulli Educação

razão: 13.3×

2026

Uma query central levava dois segundos e ninguém sabia dizer por quê. O EXPLAIN ANALYZE disse na cara: a divergência entre linhas estimadas e reais expunha um sequential scan escolhido no lugar de um índice que já existia. Atualizei as estatísticas, restaurei o uso correto do índice, ajustei os limiares de autovacuum para não voltar e documentei o método para o time — a correção vale menos do que a segunda vez em que alguém acha sozinho.

Stack: PostgreSQLEXPLAIN ANALYZEautovacuum

O dashboard abandonado

Herdado sem repasse, sem documentação, e com números que o negócio já estava usando para decidir

Jorrovi Calçados · sistemas financeiros e administrativos

razão: —

2023 – 2025

Relatórios de receita, custo e fluxo de caixa usados do chão de operação até os donos, entregues sem nada junto. Fiz engenharia reversa, avaliei a dívida e defini a estratégia de migração sozinho; depois estabilizei em três frentes: matei os crashes, rastreei e corrigi os números que vinham sendo reportados errados, e cortei o tempo de carregamento. A migração correu de forma incremental com o sistema em uso diário — sem congelamento de features, sem reescrita big-bang, sem interrupção no fechamento financeiro. Promovido em seis meses.

Stack: ReactTypeScriptKubernetes

A imagem de 1,9 GB

Ninguém tinha documentado por que era tão grande, então o primeiro trabalho foi descobrir

Freelance · Workana

razão: 9.05×

2024 – 2025

Uma imagem Docker de frontend que ninguém queria encostar, sem nenhuma documentação anterior. Diagnostiquei a causa em vez de cortar camadas no escuro e reconstruí o pipeline em multi-stage builds. Artefatos menores derrubaram custo de registry e de transferência em mais de 60%, além do tempo de build.

Stack: DockerMulti-stage builds

Projetos próprios

rag-evalPublicado

Se a resposta veio do trecho certo, medido antes de qualquer otimização

Código aberto · um pipeline de RAG que mede o próprio retrieval

razão: 8.14×

2026

Trinta perguntas sobre cinquenta Python Enhancement Proposals, com o gabarito gravado como spans de caracteres e não como ids de chunk — mudar o chunking não reescreve o gabarito em silêncio. Dense, BM25, híbrido e um reranker cross-encoder são comparados pergunta a pergunta: o reranker subiu o recall para 0,833. Cada resposta cita suas fontes, e o código resolve cada citação em caracteres do documento — 51 de 52 foram encontradas literalmente. O CI reproduz BM25, dense, híbrido e cada resposta gravada sem chave e sem chamada de rede, e falha com qualquer mudança.

Stack: PythonPostgreSQLBM25Gemini embeddingsCross-encoder rerankingAstro

citation viewer(abre em nova aba)github(abre em nova aba)

SealPublicado

Aprovação como API: human-in-the-loop como infraestrutura, não como mudança de código

Open-core · modo local sob Apache-2.0 no npm

razão: —

2026

Um gateway de aprovação para agentes de IA. Um proxy MCP intercepta tools/call e segura as chamadas de risco até um humano assinar, com um motor de política declarativo — aprovação por exceção, não por padrão — e elicitation e sampling relaiados nos dois sentidos. Cada decisão entra em uma trilha de auditoria encadeada por hash, verificável offline. O código do agente não muda para adotar: o proxy é a integração.

Stack: MCPHonoDrizzlePostgreSQLApache-2.0

useseal.dev(abre em nova aba)github(abre em nova aba)npm(abre em nova aba)

NanquimPublicado

O mercado brasileiro entrega SDK de backend em sete linguagens e para no navegador

SDK de checkout Pix · agnóstico de provider

razão: mantido

2026

Um checkout Pix embutível que roda no domínio do próprio lojista, dentro de um Shadow DOM, sem nenhuma dependência de runtime no navegador e sem requisição além do backend do lojista. Nenhuma credencial chega ao bundle, porque o SDK recebe funções e não chaves. Não existe onSuccess, porque a verdade de um pagamento é um webhook assinado e nunca o navegador. Estados ilegais são irrepresentáveis e o valor prometido é um invariante.

Stack: TypeScriptShadow DOMPixZero runtime deps

AnchorPublicado

O churn aparece nas contas de anúncio semanas antes de alguém cancelar

SaaS B2B · inteligência de retenção para agências de performance

razão: —

2026

Uma plataforma que pontua a saúde do cliente a partir de sinais do Google Ads e do Meta Ads, aprende os pesos por cliente em vez de aplicar um modelo único a todo mundo, e escreve um brief semanal que o gestor de contas consegue executar. Multi-tenant com row-level security, cobrança via Stripe com gates de plano, e observabilidade desde o primeiro deploy — não depois do primeiro incidente.

Stack: Next.jsMulti-tenant RLSStripeGoogle AdsMeta Ads

technology-artPublicado

Oito artefatos, 3,3 milhões de anos, uma nuvem de pontos remontada em cada um deles

Ensaio conduzido por scroll · WebGL

razão: mantido

2026

Uma história da tecnologia contada por oito objetos, da pedra lascada às máquinas que estão aprendendo a julgar. Uma única nuvem de pontos WebGL é remontada na forma de cada era, o intervalo entre duas eras define a altura do silêncio antes dela, e um único acento percorre o espectro conforme se lê. As camadas pesadas esperam o primeiro movimento do leitor — é por isso que o artefato sobrevive à nota.

Stack: three.jsGLSLGSAPLenis

Construção

Toda caixa do diagrama foi um requisito antes.

Ninguém desenha a arquitetura final no primeiro dia. Ela cresce um requisito por vez, e cada peça nova resolve um problema e começa a cobrar por outro. Aqui estão sete deles, em ordem.

A arquitetura depois dos sete requisitos: um cliente atrás de um load balancer, instâncias da API sem estado, um cache, um banco primário com duas réplicas de leitura, uma fila e workers chamando um provedor por um circuit breaker com reserva, e telemetria de todas as partes.
  1. 1 de 7

    Atender usuários.

    Adiciona
    Uma API, um banco.
    Custa
    Nada ainda — uma coisa pra publicar, uma pra fazer backup.
  2. 2 de 7

    Leituras abaixo de 200 ms no p95.

    Adiciona
    Um cache.
    Custa
    Toda escrita agora precisa invalidar alguma coisa.
  3. 3 de 7

    Dez vezes o tráfego.

    Adiciona
    Um load balancer e instâncias da API sem estado.
    Custa
    A sessão não pode mais morar no processo.
  4. 4 de 7

    Leituras superam em muito as escritas.

    Adiciona
    Réplicas de leitura.
    Custa
    Uma leitura pode chegar atrás da escrita anterior.
  5. 5 de 7

    Trabalho lento não pode segurar a requisição.

    Adiciona
    Uma fila e workers.
    Custa
    Jobs falham longe dos olhos, então pedem retry e dead-letter queue.
  6. 6 de 7

    Queda de um provedor não pode nos derrubar.

    Adiciona
    Um circuit breaker e um provedor reserva.
    Custa
    Duas integrações pra manter honestas em vez de uma.
  7. 7 de 7

    Saber que quebrou antes do usuário.

    Adiciona
    Logs, métricas e traces de cada caixa.
    Custa
    Uma fatura, e alguém de plantão pra ler.

Método

6

O que eu faço quando me entregam um sistema.

Seis regras, cada uma paga por um caso acima.

  • Leia o instrumento antes de chutar.

    O EXPLAIN ANALYZE dizia que o plano estava errado. Ninguém tinha olhado.

    Pago por A query de dois segundos

  • Assuma que o fornecedor cai.

    Failover de provider, para que uma queda não derrube a feature.

    Pago por Sistemas de LLM em produção

  • Coloque o limite dentro do build.

    12,14 kB é um gate que a CI aplica, não uma afirmação no README.

    Pago por Nanquim

  • Migre com o sistema no ar.

    Mais de 40 telas em quinze meses, com o sistema em uso diário.

    Pago por O dashboard abandonado

  • Escreva o padrão.

    Um padrão de code review hoje aplicado em todo serviço de backend.

  • Torne estados ilegais irrepresentáveis.

    Sem onSuccess no navegador: a verdade de um pagamento é um webhook assinado.

    Pago por Nanquim

Registro

4 · 64

O resto, de forma compacta.

Cargos

  1. Bernoulli Educação

    nov 2025 – hoje

    Senior Software Engineer · tempo integral

    Arquitetura de orquestração de LLM. Releases semanais em lote viraram deploy contínuo diário com suítes automatizadas. Autor do padrão de code review do time.

  2. Eicode

    out 2024 – jun 2025

    Senior Fullstack Engineer · promovido de pleno · tempo integral

    Dono técnico único de uma plataforma social greenfield: 12 módulos de feature, nenhum sênior acima de mim, e a direção técnica que outros três engenheiros seguiram. Engine de recomendação escrita do zero — TF-IDF com similaridade de cosseno, sem serviço de ML de terceiros. Líder técnico em contas internacionais, em inglês.

  3. Independent Contractor via Workana

    jan 2024 – nov 2025

    Senior Fullstack Engineer · 5+ contratos simultâneos · meio período

    Entregues em paralelo a posições full-time. Autenticação multi-provider construída do zero — e-mail, Google e Microsoft, 2FA, recuperação — sem nenhum incidente de auth reportado após o lançamento. Cobrança Stripe em produção para três plataformas, com webhooks idempotentes para que retentativas nunca cobrassem duas vezes.

  4. Jorrovi Calçados

    abr 2023 – jun 2025

    Junior Fullstack Engineer · promovido de trainee · meio período

    O dashboard financeiro abandonado, acima. TypeScript adotado em toda a base após defender a decisão com stakeholders não técnicos, e deploys Kubernetes automatizados em dev, staging e produção.

Competências

  • Linguagens e frameworks

    TypeScript · Python · Node.js · NestJS · FastAPI · React · Next.js

  • Engenharia de IA

    LLM orchestration · Multi-agent routing · Provider failover · Model evaluation · Embeddings & vector search (pgvector) · LangChain

  • Dados e mensageria

    PostgreSQL · MongoDB · Redis · RabbitMQ · BullMQ

  • Cloud e infraestrutura

    AWS EC2 · Lambda · S3 · Azure App Service · Functions · Docker · Kubernetes · CI/CD

  • Arquitetura e APIs

    Event-Driven · Microservices · REST · GraphQL · Jest · pytest

Lista completa do currículo, 64 termos
  • Linguagens e frameworks

    TypeScript · JavaScript · Python · PHP · React · Next.js · Vue.js · Node.js · NestJS · FastAPI · Django / DRF · Fastify · Express · Laravel · TailwindCSS

  • Engenharia de IA

    LLM orchestration · Multi-agent routing · Provider failover · Response caching · Model evaluation · MongoDB retrieval · LangChain · Pydantic structured output · Embeddings & vector search (pgvector) · scikit-learn · NumPy

  • Dados e mensageria

    PostgreSQL · MySQL · MongoDB · DynamoDB · Redis · Firebase · Kafka · RabbitMQ · BullMQ · Celery · SQLAlchemy / Alembic · pandas

  • Cloud e infraestrutura

    AWS EC2 · Lambda · S3 · SQS · SNS · API Gateway · CloudFront · RDS · ECS · Fargate · Azure App Service · Functions · Azure Service Bus · AKS · Docker · Kubernetes · Nginx · Linux · Git · CI/CD · boto3

  • Arquitetura e APIs

    Clean Architecture · DDD · Event-Driven · Microservices · CQRS · Hexagonal · Serverless · SOLID · REST · GraphQL · Jest · pytest · mypy / Ruff

Outros repositórios

  • depguard(abre em nova aba)

    Pontuação preventiva de risco em dependências npm: metadados do registry, lifecycle scripts, avisos OSV e heurísticas de typosquatting.

    TypeScript · OSV · CLI

  • env-validator(abre em nova aba)

    Valida process.env na inicialização contra um schema tipado, coletando todos os erros de uma vez, com inferência e sem dependências.

    TypeScript · Zero deps

Formação

Bacharelado em Engenharia de Software · Cruzeiro do Sul · em andamento, previsão 2029

Idiomas

Português nativo · Inglês C1 — usado diariamente em produção: cerimônias, code review, documentação técnica.

Referências

2 · 11

“…someone you can trust implicitly to unblock the toughest challenges.”

Gleyver Coutinho Castro, meu gestor na Bernoulli. Uma linha das duas recomendações abaixo, citadas na íntegra e no original em inglês. O índice liga cada traço ao trecho que o afirma; aponte para um e ele acende.

Gleyver Coutinho Castro

Software Engineering Manager

Foi meu gestor direto · Bernoulli Educação ·

I had the privilege of working with Matheus at Bernoulli, and I can attest that his impact goes far beyond the lines of code he delivers.

What truly sets Matheus apart is his genuine autonomy and strong sense of ownership. Whenever we faced complex and ambiguous problems, he was the one who dove deep into the technical investigation, mapped out bottlenecks, made assertive architectural decisions, and drove solutions from start to finish with total responsibility.

In addition to his excellent technical background and analytical skills, his communication and collaboration with the team are flawless. He has a natural ability to translate difficult problems into clear discussions, engage the team, and keep everyone aligned. He is the kind of engineer who raises the technical bar of any team and someone you can trust implicitly to unblock the toughest challenges.

Publicada no LinkedIn(abre em nova aba)

Kevin Blair

QA Automation Engineer

Mesmo time · Bernoulli Educação ·

I had the chance to work with Matheus, and one thing that always stood out was his enthusiasm for technology and learning new things. He's someone who genuinely enjoys exploring new ideas, takes on challenges with a positive attitude, and always puts in the effort to get things done right. On top of that, he's a great teammate who's always willing to help and share what he knows. It was a pleasure working with him.

Publicada no LinkedIn(abre em nova aba)

Citadas literalmente, como publicadas. Os trechos marcados são meu índice, não ênfase deles.

Contato

O que você está construindo?

Aberto a posições de engenharia e a contratos em que alguém precisa assumir uma feature de IA de ponta a ponta. Respondo em até um dia.

Enviar uma mensagem