Pular para o conteúdo
Gustavo Maia

Gustavo Maia, Salvador, Bahia

Deixo sistemas em produção mais rápidos, estáveis e baratos.

Sou desenvolvedor fullstack pleno com foco em backend. Trabalho com Node.js, NestJS, filas, cache e cloud, e hoje construo uma plataforma de mobilidade corporativa na Koepe do Brasil, usada por clientes como a Petrobras.

Medido em produção, antes e depois do meu trabalho
  • Listagem de uma plataforma de mobilidade corporativa. Tempo de resposta caiu de 24,5 segundos para 1 segundo, 96% mais rápida.

    O payload da mesma tela caiu de 10,8 MB para 11 KB.

  • ERP com mais de 50 mil usuários. Tempo de resposta caiu de 16 segundos para 200 milissegundos, 98% mais rápido.

  • Armazenamento de 108 mil imagens. Armazenamento caiu de 20 gigabytes para 2 gigabytes, 90% menos espaço.

    E 90% menos custo depois da migração para o S3.

Problemas que resolvi

Três situações reais, contadas do jeito que aconteceram: o que estava quebrado, o que eu fiz e o que mudou.

Koepe do Brasil, 2026

Relatórios que derrubavam a API

O problema

A geração de relatórios em XLSX e PDF rodava dentro da própria API. Exportações grandes carregavam tudo na memória e derrubavam o serviço para todo mundo.

Resultado

A sobrecarga de memória que derrubava a API acabou. O usuário pede o relatório, segue usando o sistema e baixa o arquivo direto do S3 por uma URL pré-assinada.

O que eu fiz

  • Tirei a exportação da API e criei um microsserviço orientado a eventos com RabbitMQ.
  • Fiz o worker ler o MongoDB em stream e enviar o arquivo para o S3 também em stream, sem montar o relatório inteiro em memória.
  • Adicionei retry e dead letter queue, para nenhuma exportação se perder em silêncio.
  • Integrei no front em React com aviso em tempo real quando o arquivo fica pronto, isolado por cliente.
Como o fluxo ficou
  1. Pedido

    a API responde na hora e publica um evento

  2. RabbitMQ

    fila com retry; o que falhar vai para a DLQ

  3. Worker

    lê o MongoDB em stream e gera XLSX ou PDF

  4. AWS S3

    upload em stream, memória constante

  5. Download

    URL pré-assinada e aviso em tempo real

Koepe do Brasil, 2026

Uma listagem que levava 24 segundos

O problema

As telas de listagem devolviam documentos inteiros, com todas as relações populadas, e filtravam no cliente. Uma única resposta chegava a 10,8 MB e levava 24,5 s.

Resultado

Payload até 99,9% menor (10,8 MB para 11 KB) e latência até 96% menor (24,5 s para 1 s), sem quebrar nenhuma versão do app.

O que eu fiz

  • Investiguei o consumo de memória e o tempo de cada etapa da requisição até achar onde o peso estava.
  • Passei a projetar só os campos que cada tela usa, sob demanda, e a popular relações de forma seletiva no Mongoose.
  • Movi a busca para o servidor com Aggregation Pipeline e limite de resultados.
  • Mantive a compatibilidade com os apps mobile já publicados e escrevi as convenções de contrato de API para o time.

Acesso Ponto Tech, 2025

Registros de ponto chegando todos ao mesmo tempo

O problema

Os registros de ponto eletrônico de um cliente público chegavam em paralelo e eram processados dentro da requisição. A API ficava lenta, havia duplicidade e a integração com o sistema externo falhava sem deixar rastro.

Resultado

O tempo de resposta da API caiu 99,7%, a duplicidade sumiu e cada registro passou a ser rastreável do relógio de ponto até o sistema do cliente.

O que eu fiz

  • Desenhei uma arquitetura de filas com Bull e Redis para ingerir e processar tudo em background, com execução paralela e retry.
  • Criei uma deduplicação Redis-first, com rotação de cache por gerações durante as importações diárias.
  • Reescrevi a integração externa para enviar em lotes, acumulando por volume ou janela de tempo, com retry exponencial, isolamento de registros inválidos e alerta em falha crítica.
Como o fluxo ficou
  1. Registros

    chegam em paralelo, o dia inteiro

  2. Redis

    deduplicação antes de tocar no banco

  3. Fila Bull

    processamento em background com retry

  4. Lotes

    agrupados por volume ou janela de tempo

  5. API externa

    retry exponencial e alerta em falha

Experiência

  1. – hoje

    Desenvolvedor fullstack pleno, Koepe do Brasil

    Remoto

    Plataforma de mobilidade corporativa em um projeto de inovação, atendendo clientes de grande porte como a Petrobras.

    • Microsserviço de exportação orientado a eventos com RabbitMQ, streaming do MongoDB para o S3, retry e DLQ.
    • Investigação de performance: payload até 99,9% menor e latência até 96% menor nas listagens.
    • Upload de documentos em massa com fila no Redis, vínculo automático aos registros e armazenamento no Azure Blob Storage.
    • Módulos de escala de trabalho e de políticas de jornada baseadas na CLT, com validação em tempo real.
    • NestJS
    • React
    • React Native
    • MongoDB
    • RabbitMQ
    • Redis
    • AWS S3
    • Docker
  2. –

    Desenvolvedor de software, Acesso Ponto Tech

    Salvador, presencial

    Controle de ponto eletrônico e análise de licitações públicas, com a EBSERH como principal cliente.

    • Arquitetura de filas com Bull e Redis: tempo de resposta da API 99,7% menor.
    • ERP com mais de 50 mil usuários saiu de 16 s para 200 ms com cache e reescrita de consultas.
    • Migração de 108 mil imagens do disco local para o S3 com quase zero downtime: 90% menos custo.
    • CPU 60% menor, observabilidade com Grafana, Prometheus e Loki, e backups com restore em menos de 10 minutos.
    • Node.js
    • NestJS
    • Redis
    • Bull
    • AWS S3
    • Grafana
    • Prometheus
    • Loki
  3. –

    Desenvolvedor de software, freelancer, Kastelly Design

    Remoto

    Sistema de gestão para uma loja de móveis planejados: clientes, orçamentos, contratos, projetos e financeiro.

    • API em Java com Spring Boot, MongoDB Atlas, JWT, cache com Caffeine e geração e envio de PDFs.
    • App desktop em Electron e React, com atualização automática via GitHub Releases e API hospedada na AWS EC2.
    • Java
    • Spring Boot
    • MongoDB
    • Electron
    • React
    • AWS EC2
  4. –

    Estagiário de TI, Colégio Liceu Salesiano do Salvador

    Salvador, presencial

    Sistemas internos do colégio.

    • Controle de ativos de TI com Spring Boot, React e MySQL, testado com JUnit e documentado com Swagger.
    • Formulário de solicitações de serviço com Node.js, Express e React, em containers, testado com Jest.
    • Java
    • Spring Boot
    • Node.js
    • React
    • MySQL
    • MongoDB
    • Docker
  5. –

    Desenvolvedor fullstack júnior, Redgtech Automação

    Remoto

    Aplicativos para controle de dispositivos de automação e IoT.

    • Navegação e UX do app em React Native, e estado centralizado com Context API.
    • Protótipo desktop em Electron para controle de dispositivos IoT.
    • Notificações assíncronas com fila de processos, mantendo a interface fluida.
    • React Native
    • React
    • Electron
    • TypeScript

Formação

Tecnologia em Análise e Desenvolvimento de Sistemas

Universidade Salvador (UNIFACS), – em andamento

Projetos pessoais

O que eu construo fora do trabalho, quase sempre para resolver um problema meu.

  • CashFlow

    Controle de fluxo de caixa com API REST e um bot no Telegram para lançar um gasto em segundos. Cada usuário vê só os próprios dados, toda escrita gera auditoria assíncrona e cada requisição é rastreável de ponta a ponta.

    • NestJS
    • PostgreSQL
    • Prisma
    • BullMQ
    • Telegram
  • Finanças pessoais

    Organizador financeiro que captura transações a partir das notificações do celular, com gráficos de gastos e controle de assinaturas recorrentes. API na Azure e front na Vercel.

    • Node.js
    • Express
    • Prisma
    • MongoDB
    • React
    • Zustand

    Ver a demonstração no LinkedIn

  • Comanda

    App para dividir a conta do bar: cada pedido registra quem consumiu, a taxa de serviço é ajustável e o fechamento mostra quanto cada pessoa paga, com os centavos batendo.

    • React
    • TypeScript
    • PWA

Com o que eu trabalho

Backend
Node.js, TypeScript, NestJS, Express, Fastify, Java, Spring Boot
Filas e cache
RabbitMQ, BullMQ, Redis, WebSockets
Dados
MongoDB, PostgreSQL, MySQL, Prisma, Mongoose
Cloud e infra
AWS S3, EC2, Lambda, CloudWatch, Azure Blob Storage, Docker, Linux, CI/CD
Observabilidade
Grafana, Prometheus, Loki
Front e mobile
React, Next.js, React Native, Electron, Tailwind, Zustand
Testes
Jest, Vitest, Supertest, Cypress, JUnit

Vamos conversar

Para vagas, projetos ou só trocar uma ideia sobre backend, o e-mail é o caminho mais rápido.

ms.gustavo@outlook.com

Também estou em LinkedIn e GitHub.

Ou mande uma mensagem por aqui