Maique Moraes

Engenheiro full stack sênior
baseado no Brasil

Pular para o conteúdo

Maique Moraes · Engenheiro de Software Full Stack Sênior

Interfaces claras.Serviços confiáveis.IA que respeita as regras.

Sou Maique Moraes, engenheiro full stack com mais de 6 anos desenvolvendo produtos em TypeScript para compras corporativas, logística, serviços financeiros e saúde. Atuo de ponta a ponta com React, Next.js, Node.js e NestJS — e integro LLMs, recuperação de documentos e ferramentas MCP a fluxos reais de negócio.

Agora
Desenvolvedor Full Stack Sênior na Stratesys
Antes
Grupo Inlog · Unicred · uFLY
Base
João Pessoa, Brasil (UTC−3)
Fig. 01 — Onde atuo em um produto

→ ServiçosBackends-for-frontend que reúnem dados, validam acesso e falham de forma explícita quando falta uma informação essencial.

anos entregando software em produção
6+
setores: compras, logística, finanças, saúde, setor público e telemetria
6
assistentes de IA integrados a plataformas de negócio
2
pessoas mentoradas ou treinadas nos times
15+

Trabalhos selecionados

Três problemas e as decisões por trás deles.

Trabalhos profissionais apresentados em alto nível. Os diagramas são ilustrações originais das ideias de engenharia — não capturas de tela nem arquitetura interna dos produtos.

  1. 01

    Stratesys Compras corporativas

    Um quadro comparativo em que dá para confiar

    Um BFF em NestJS que reúne dados de propostas e fornecedores vindos de vários serviços em uma visão confiável — e se recusa a apresentar uma comparação incompleta como válida.

    • NestJS
    • Next.js
    • TypeScript
    • Server Actions
    • Jest
  2. 02

    Grupo Inlog · Stratesys IA aplicada em logística e compras

    Assistentes de IA que trabalham dentro das regras

    Dois assistentes, em logística e em compras, que respondem com base em documentos, consultam dados operacionais atuais e executam ações — enquanto a aplicação mantém o controle de identidade, permissões e regras de negócio.

    • LLMs
    • RAG
    • MCP
    • NestJS
    • pgvector
    • Azure AI Search
  3. 03

    Unicred Serviços financeiros · Arquitetura frontend

    Evoluir uma plataforma financeira sem quebrar a confiança

    Migração de funcionalidades React para microfrontends com single-spa, com fronteiras claras entre componentes, design system compartilhado e testes que protegem o comportamento existente.

    • React
    • single-spa
    • Next.js
    • NestJS
    • Jest
    • Testing Library

Nomes de clientes, sistemas internos e detalhes proprietários foram omitidos de propósito.

Experiência

Seis anos de produtos reais e restrições reais.

Da telemetria veicular às compras corporativas — com responsabilidades que cresceram de funcionalidades individuais para integrações de backend, arquitetura, qualidade e apoio a outros desenvolvedores.

  1. Atual

    Stratesys

    Desenvolvedor Full Stack Sênior · Compras corporativas e strategic sourcing para grandes empresas · IntelligentBuy

    • Desenvolvo fluxos de compras em React e Next.js: processos de compra, negociações com fornecedores, quadro comparativo e cenários de premiação.
    • Sou responsável por um BFF em NestJS para o quadro comparativo, com validação de acesso, falhas controladas, logs estruturados e correlation IDs.
    • Integro o assistente de IA do produto com Azure OpenAI, busca híbrida no Azure AI Search e ferramentas MCP que respeitam a autenticação Keycloak e as permissões do usuário.
    • Ajudei a projetar e colocar em produção uma estrutura em que aplicações Next.js com deploy independente compartilham um portal persistente — e a conversa com a IA continua enquanto o usuário navega entre produtos.
    • TypeScript
    • Next.js
    • NestJS
    • Azure OpenAI
    • Azure AI Search
    • MCP
    • Keycloak
  2. Grupo Inlog

    Desenvolvedor Full Stack Sênior · Gestão de coleta de resíduos usada por empresas e serviços públicos em vários estados · motoristas, frota e rotas

    • Desenvolvi um assistente de IA com GPT-4o, LangChain.js, PostgreSQL/pgvector e ferramentas MCP, com respostas via SSE.
    • Entreguei funcionalidades full stack e APIs REST para motoristas, frota, setores de coleta e rotas, incluindo interfaces com mapas em Leaflet.
    • Participei do design system com Material UI, Tailwind CSS e Radix UI, e refatorei componentes para reduzir acoplamento.
    • Entreguei funcionalidades e correções em um período em que a base de empresas clientes ativas cresceu cerca de 15% — um resultado conjunto de engenharia, produto e comercial.
    • React
    • Next.js
    • NestJS
    • Redux
    • LangChain.js
    • pgvector
    • Leaflet
  3. Unicred

    Desenvolvedor Full Stack Sênior · Aplicações digitais de uma cooperativa financeira com atuação nacional

    • Desenvolvi funcionalidades web e BFFs em NestJS conectados a APIs de serviços financeiros.
    • Migrei funcionalidades React para microfrontends com single-spa, com mínimo de 95% de cobertura de linhas exigido pelo CI.
    • Apoiei de seis a oito desenvolvedores e conduzi treinamentos internos sobre arquitetura de componentes, Figma para código e BFFs.
    • React
    • Next.js
    • NestJS
    • single-spa
    • Jest
    • Testing Library

Antes disso

  1. uFLY

    Desenvolvedor Full Stack · Software de alocação na saúde feito para um dos maiores hospitais do Brasil

    Desenvolvi interfaces responsivas para fluxos hospitalares, integrei APIs, investiguei defeitos em produção e apresentei o andamento das entregas a clientes.

  2. Autonomo Technologies

    Desenvolvedor Full Stack · Emissão e validação de documentos oficiais — CNH e PID — usadas por Detrans de vários estados

    Desenvolvi funcionalidades com React, Vue.js, TypeScript, Node.js e NestJS; refatorei para facilitar a manutenção, com testes unitários, SonarQube e code reviews.

  3. Creare Sistemas

    Desenvolvedor Backend · desde o estágio · Telemetria veicular para multinacionais do agronegócio

    Onde tudo começou: investiguei problemas de telemetria com Oracle SQL, JavaScript e JSON, escrevi documentação de treinamento e treinei novos estagiários e uma equipe de cerca de dez colegas não desenvolvedores.

Abordagem

Como tomo decisões de engenharia.

Princípios que aprendi em projetos reais — cada um ligado a um trabalho descrito nesta página.

  1. Falhar com clareza, não em silêncio.

    Quando a falta de dados pode induzir uma decisão errada, um erro explícito e recuperável é melhor do que uma tela aparentemente correta.

    → BFF do quadro comparativo

  2. Conhecimento não é estado.

    A recuperação responde com base em documentos. Status atual e ações vêm dos serviços responsáveis — com suas permissões preservadas.

    → Assistentes de IA

  3. Tornar as responsabilidades visíveis.

    Fronteiras claras entre dados, lógica e apresentação dão a cada mudança um lugar óbvio — e um teste óbvio.

    → Migração da plataforma financeira

  4. Simples até que se prove o contrário.

    Eu costumava projetar componentes compartilhados para necessidades que ainda não existiam. Hoje limito o tempo de decisões reversíveis, entrego a versão simples e reservo a análise profunda para escolhas difíceis de desfazer.

    → Um aprendizado com design system

  5. Deixar o time mais forte.

    Revisões, pareamento e treinamentos fazem boas decisões durarem além de quem as tomou.

    → Mentoria e treinamentos internos

Notas de campo

Pequenas histórias de produção.

Nem todo aprendizado vem de um grande projeto. Algumas investigações que moldaram meu jeito de trabalhar.

  • React · Performance

    O filtro que disparava demais

    Uma listagem de veículos enviava várias requisições idênticas ao abrir a página e a cada mudança de filtro. O efeito dependia de um objeto de filtros recriado a cada renderização. Estabilizei as dependências para disparar só quando os valores mudavam de fato, e cancelei requisições antigas com AbortController para que respostas lentas não sobrescrevessem buscas mais recentes.

    AprendizadoVerifique igualdade de referência antes de culpar a API — e descarte as execuções extras do Strict Mode antes de chamar de bug.

  • Backend · Banco de dados

    Um N+1 escondido em uma listagem

    Uma API de rotas e veículos ficava mais lenta conforme os dados cresciam. Os logs mostravam uma consulta para a lista e outra para cada registro relacionado. Busquei os relacionamentos em lote, analisei o plano com EXPLAIN ANALYZE, ajustei um índice usado pelos filtros e verifiquei que resultados, paginação e ordenação continuavam idênticos.

    AprendizadoUma otimização precisa de uma verificação de equivalência, não só de um número mais rápido.

  • Entrega · Containers

    Pipeline verde, aplicação fora do ar

    Build aprovado, testes aprovados, imagem publicada — e a nova revisão no Azure Container Apps nunca ficava pronta. Logs e eventos mostraram o NestJS ouvindo na porta 3000 enquanto o ingress esperava a 8080. Alinhei a configuração, validei health check e endpoints e revisei os outros ambientes para evitar a mesma divergência.

    AprendizadoUm pipeline bem-sucedido prova o build, não o serviço rodando.

    Ler a história completa: Pipeline verde, aplicação fora do ar
  • Arquitetura · Colaboração

    Síncrono ou assíncrono? Os dados decidem.

    Um colega preferia gerar exportações de relatórios dentro da própria requisição HTTP; eu me preocupava com volumes grandes. Em vez de discutir, testamos tamanhos diferentes. As exportações maiores estavam sujeitas a timeouts, então foram para jobs em segundo plano com acompanhamento de status — e as pequenas continuaram síncronas.

    AprendizadoUm teste compartilhado resolve uma divergência mais rápido do que um debate longo.

Engenharia com IA

A IA faz parte de como eu construo software, não só do que eu construo.

Trabalho com agentes de IA todos os dias para ganhar velocidade — e respondo por cada linha que vai para produção.

  1. Explorar e construir

    Uso Claude Code, Codex e GitHub Copilot para explorar bases de código, investigar bugs, comparar abordagens técnicas e acelerar a implementação, mantendo mudanças focadas e fáceis de manter.

  2. Testar e validar

    A IA me ajuda a encontrar casos de borda, ampliar os testes automatizados e conduzir verificações no navegador com Playwright MCP. Código e testes gerados são executados, revisados e validados contra o comportamento esperado.

  3. Revisar e entregar

    Revisões de pull request assistidas por IA no Azure DevOps funcionam junto com checks de CI, análise estática e revisão humana. A IA antecipa problemas; correção, segurança e manutenção continuam sendo minha responsabilidade.

Veja na prática: este site foi construído com agentes de IA sob a minha direção.O código, os testes, as instruções para agentes e o histórico de commits são públicos.(abre em uma nova aba)

Ferramentas

O que uso em produção.

Frontend

  • TypeScript
  • React
  • Next.js
  • Server Actions
  • Redux
  • Zustand
  • Tailwind CSS
  • Material UI
  • Radix UI
  • single-spa
  • Leaflet

Backend

  • Node.js
  • NestJS
  • APIs REST
  • Backends-for-frontend
  • PostgreSQL
  • SQL
  • Zod
  • Keycloak
  • NextAuth

Integração com IA

  • Azure OpenAI
  • GPT-4o
  • LangChain.js
  • RAG
  • Busca híbrida
  • Azure AI Search
  • pgvector
  • MCP
  • Streaming via SSE

Desenvolvimento com IA

  • Claude Code
  • OpenAI Codex
  • GitHub Copilot
  • Playwright MCP
  • Code review com IA

Qualidade e entrega

  • Jest
  • React Testing Library
  • TDD
  • Azure DevOps
  • Docker
  • Deploys em Kubernetes
  • Vercel
  • ESLint
  • SonarQube

Também: JavaScript, Vue.js, Oracle SQL, Git, Scrum.

Trajetória

Além do código.

Formação
Análise e Desenvolvimento de Sistemas — SENAI/RS, 2020–2022
Idiomas
Português (nativo) · Espanhol (avançado) · Inglês (intermediário)
Comunidade
Tech lead frontend voluntário no Instituto Mancala e mentor de tecnologia para estudantes de escolas públicas pela Atados (2022–2023).

Maique é um dos profissionais mais qualificados com quem eu já trabalhei. As principais características que eu notei foram: rápido aprendizado, ótimo conhecimento técnico, capacidade de entender as regras de negócio e comprometimento, muitas vezes fazendo horas extras para resolver problemas que não eram de sua responsabilidade.

Ricardo Oliveira

Gestor direto

Contato

Construindo algo que precisa dar certo?

Rendo mais em times que se importam com os detalhes — interfaces claras, serviços confiáveis e IA que respeita as regras do negócio. Se esse é o seu time, o e-mail é o jeito mais rápido de falar comigo.

Moro no Brasil (UTC−3) e tenho flexibilidade de horário para trabalhar com times das Américas e da Europa.