Pular para o conteúdo
Tem uma ideia de site ou sistema? Peça um orçamento (abre em nova aba)

Disponível para vagas de Desenvolvedor Back-end ou Full Stack, e também de Analista de Sistemas, Analista de Dados ou Suporte de TI

Matheus Ansel

Desenvolvedor Backend e Full Stack

Node.js · TypeScript · React · PostgreSQL

Construo sistemas web completos, com APIs seguras, testes automatizados e código em camadas.

Projetos

Cada projeto traz a arquitetura, a forma como é protegido e como é testado. O código fica no GitHub quando é público.

Página inicial do site da oficina com o botão de orçamento pelo WhatsApp
Capturas reais do site publicado.
Em produçãoParada 799 · cliente realProjeto 1 de 7

Sistema para Oficina Mecânica

Cliente real, em produção. A oficina, em Irajá (RJ), não aparecia nas pesquisas e não tinha registro centralizado dos veículos. Fiz sozinho, do levantamento com o dono ao deploy: site com domínio próprio, páginas por serviço e SEO local verificado no Google Search Console, e gestão de ordens de serviço, clientes e veículos com Row Level Security, testes e CI.

Next.jsReactTypeScriptPostgreSQLRedis
Ver arquitetura e pontos de engenharia

Pontos de engenharia

  • SegurançaWebhook do WhatsApp validado por HMAC, com deduplicação, porque a Meta reenvia webhooks.
  • SegurançaRLS ligado em todas as tabelas da gestão, com um teste que falha se uma tabela nova for criada sem RLS; sessão em cookie httpOnly.
  • DadosTotal da ordem calculado no servidor, exclusão lógica para preservar o histórico financeiro e faturamento no fuso America/Sao_Paulo.
  • TestesRegras de status, totais, períodos, CSV e RLS cobertas por testes com node:test, rodando no CI.
  • ProdutoExportação CSV pensada para o Excel em português, com proteção contra CSV injection.

Fluxo do sistema

  1. Entrada

    Google · Instagram · Site Next.js 15

    O cliente chega pelo Google ou Instagram e começa o pedido pelo site.

  2. WhatsApp

    WhatsApp Cloud API · Webhook

    Assinatura HMAC (X-Hub-Signature-256) com comparação timing-safe e deduplicação de mensagens reenviadas.

  3. Fluxo do bot

    Máquina de estados · Redis (Upstash)

    Perguntas objetivas sobre veículo, ano, serviço e foto. A regra é uma função pura, coberta por testes.

  4. Gestão

    Route Handlers · bcrypt · JWT em cookie httpOnly

    Ordens de serviço, clientes, veículos e dashboard, com login próprio.

  5. Dados

    PostgreSQL (Supabase) · RLS · Migrations

    RLS em todas as tabelas da gestão. Um teste falha se uma tabela nova for criada sem RLS.

  6. Entrega

    Vercel · GitHub Actions

    O CI roda checagem de tipos, lint, testes e build a cada push.

Seção de serviços: o cliente escolhe o problema e o WhatsApp abre com o serviço indicado
Dashboard com KPIs, vendas dos últimos 6 meses e produtos mais vendidos
Capturas reais da aplicação, com dados fictícios de demonstração.
PublicadoSistema de controle financeiroProjeto 2 de 7

Syre

Controle financeiro com clientes, fornecedores, estoque, vendas e contas a receber. 280 testes automatizados, refresh token rotativo, perfis de acesso e API em OpenAPI.

ReactNode.jsExpressPostgreSQL

Na tela de login, o botão "Preencher com acesso demo" entra com uma conta somente leitura. A API fica em plano gratuito: o primeiro acesso pode levar até um minuto.

Ver arquitetura e pontos de engenharia

Pontos de engenharia

  • SegurançaJWT obrigatório; resposta idêntica para usuário inexistente e senha errada, o que evita enumeração de e-mails.
  • SegurançaRefresh token rotativo e perfis de acesso, com limite de tentativas mais restrito no login.
  • DadosTotal da venda calculado no servidor, recebimento nunca acima do saldo e CPF/CNPJ validados por dígito verificador.
  • Testes280 testes: 255 no back-end contra PostgreSQL real e 25 no front-end com Testing Library.
  • InfraProblemas reais de deploy e de testes documentados no README, cada um com a correção aplicada.

Arquitetura

  1. Frontend

    React 18 · TypeScript · Vite · Recharts

    Dashboard, sete módulos e tratamento de erro da API.

  2. API

    Node.js · Express · JWT · Rate limiting · Helmet · CORS

    routes → middleware → controllers. JWT em toda a API, exceto no login.

  3. Regras no banco

    Triggers · Transações

    Baixa de estoque e datas mantidas por triggers. Venda sem estoque é recusada.

  4. Dados

    PostgreSQL · 8 tabelas · UUID · SSL

    Migrations versionadas e restrições no banco.

  5. Entrega

    Vercel · Render · Supabase · GitHub Actions

    Frontend, API e banco implantados de forma independente. O CI sobe um PostgreSQL 16 para os testes.

Contas a receber com filtros por status e recebimento parcial
Captura de tela de ITSM: Sistema de Gestão de Chamados e Ativos de TI: Painel
Capturas reais da demonstração, com dados fictícios.
PublicadoService desk e ativos de TIProjeto 3 de 7

ITSM

Service desk com chamados, SLA e fechamento automático, ativos de TI e trilha de auditoria. Testes unitários, de integração contra PostgreSQL real e no navegador (Playwright).

NestJSPrismaPostgreSQLNext.jsDocker

A tela de login tem botões para entrar como gestor, atendente ou solicitante. A API fica em plano gratuito e dorme sem uso: o primeiro acesso pode levar cerca de um minuto.

Ver arquitetura e pontos de engenharia

Pontos de engenharia

  • SegurançaO solicitante só vê os próprios chamados, e a API responde 404, não 403, para não revelar que os de outras pessoas existem.
  • SegurançaAnexos validados pelos bytes do arquivo, gravados com nome aleatório e baixados só por rota autenticada.
  • DadosSLA de primeira resposta e de resolução por prioridade, com pausa enquanto o chamado aguarda o usuário, e trava otimista (409) contra edição simultânea.
  • TestesMais de 190 testes unitários na API, cerca de 80 no frontend, 27 de integração contra PostgreSQL 16 real e 9 no navegador com Playwright.
  • InfraLogs em JSON com requestId, /api/health com o commit em execução e checagem da demonstração depois de cada deploy.

Arquitetura

  1. Frontend

    Next.js 16 · React 19 · TypeScript · Tailwind CSS 4 · Recharts

    Painel gerencial, fila de chamados e telas diferentes para solicitante, atendente, gestor e administrador.

  2. API

    NestJS · class-validator · Zod · Helmet · Rate limiting · Swagger

    Cada módulo tem controller, service, DTOs e repositório. Status e SLA são funções puras, testáveis sem banco.

  3. Sessão

    Access token em memória · Refresh token rotativo · Cookie httpOnly

    Refresh guardado como hash; o reuso de um token já usado derruba todas as sessões do usuário.

  4. Dados

    PostgreSQL 16 · Prisma · Migrations

    Repositórios com Prisma em produção e em memória nos testes.

  5. Entrega

    Docker · Docker Compose · GitHub Actions · Vercel · Render

    O CI roda tipos, lint, testes, migrations, e2e, build e npm audit, e constrói as imagens Docker.

Captura de tela de ITSM: Sistema de Gestão de Chamados e Ativos de TI: Fila de chamados
Manchete com os números atuais e o gráfico de Selic e IPCA em 12 meses
Capturas reais da demonstração, com dados do Banco Central.
PublicadoDados reais do Banco CentralProjeto 4 de 7

brasil-econ-dashboard

Dados reais do Banco Central: ETL agendado e idempotente, API com cache em Redis e OpenAPI, análise de Selic, inflação e juro real. 87 testes contra PostgreSQL e Redis reais.

Node.jsTypeScriptPostgreSQLRedisNext.js

A API fica em plano gratuito e dorme sem uso: o primeiro acesso pode levar até um minuto.

Ver arquitetura e pontos de engenharia

Pontos de engenharia

  • DadosJuro real pela equação de Fisher e correlação de Pearson entre Selic e IPCA com defasagem de 0 a 24 meses.
  • DadosUma série que falha não interrompe as outras, e a execução fica registrada com status de erro.
  • Testes87 testes com Vitest contra PostgreSQL e Redis reais; o CI falha se a cobertura cair abaixo do mínimo exigido.
  • InfraO CI sobe a stack inteira em Docker e faz um teste de fumaça, incluindo uma resposta MISS e depois HIT no cache.
  • SegurançaAPI pública sem login, com limite de 120 requisições por minuto por IP e CORS fechado em produção.

Fluxo dos dados

  1. Fonte

    Banco Central (SGS)

    Selic meta e diária, IPCA mensal e em 12 meses e dólar PTAX, desde 2005.

  2. ETL

    Node.js · TypeScript · Upsert

    Idempotente e incremental (reprocessa os últimos 60 dias), com retentativa e registro de cada execução em etl_runs.

  3. Dados

    PostgreSQL · Drizzle · Migrations

    Chave primária em (series_id, date): rodar o ETL de novo não duplica nada.

  4. API

    Fastify · Zod · OpenAPI 3.1 · Helmet · Rate limiting

    Os schemas Zod que validam as requisições também geram a documentação.

  5. Cache

    Redis

    A chave leva a versão do último ETL: carga nova invalida o cache sem apagar nada. Com o Redis fora do ar, a resposta sai do banco.

  6. Entrega

    Next.js · Recharts · Docker Compose · GitHub Actions · Vercel · Render · Supabase

Juro real e o início do gráfico de dólar e Selic
Seção inicial com título, chamadas para a live e para o Discord
Capturas reais do site publicado.
PublicadoSite de criador de conteúdo · cliente realProjeto 5 de 7

JotaJogaDBD

Projeto real, entregue a cliente: landing page institucional para o streamer de Dead by Daylight JotaJogaDBD, construída em colaboração com Marina Barbs.

Next.jsReactTypeScriptTailwind CSSFramer Motion
Ver arquitetura e pontos de engenharia

Pontos de engenharia

  • ProdutoArquitetura pensada para quem vai manter: nenhum link ou texto fica fixo dentro dos componentes.
  • ProdutoSeções implementadas na ordem do briefing do cliente.

Arquitetura

  1. Conteúdo editável

    /config · socials.ts · site.ts

    Links, textos, estatísticas, agenda e clipes isolados em arquivos de configuração.

  2. Seções

    React 18 · TypeScript · Tailwind CSS

    Uma seção por arquivo: Hero, Estatísticas, Sobre, Conteúdos, Clipes, Agenda, Comunidade e Apoie.

  3. Framework

    Next.js 15 · App Router · Server Components

    SEO com sitemap e robots.

  4. Movimento

    Framer Motion

    Reveals de scroll, hover 3D e tela de loading.

  5. Entrega

    Vercel

Seção de reações do streamer
Página inicial com banner e chamada para a coleção
Prévia da loja em desenvolvimento, em modo demonstração. O código não é público.
Em desenvolvimento · código não públicoLoja de dropshipping headless · em desenvolvimentoProjeto 6 de 7

EcanBuy

Loja de dropshipping headless construída com Next.js (App Router) e Shopify Storefront API, com tema claro e carrinho, cupom e checkout integrados à Shopify.

Next.jsReactTypeScriptTailwind CSSShopify Storefront APIGraphQL
Código não público
Ver arquitetura e pontos de engenharia

Pontos de engenharia

  • SegurançaEntradas validadas nas Server Actions, headers de segurança e dependências sem vulnerabilidades conhecidas no npm audit.
  • ProdutoModo demonstração com catálogo local, para desenvolver a interface sem a Shopify configurada.

Fluxo de compra

  1. Cliente

    Next.js 16 · React 19 · Tailwind CSS 4

    Catálogo, página de produto por handle, carrinho e cupom.

  2. Servidor

    Server Components · Server Actions

    Entradas das Server Actions validadas, erros genéricos para o cliente e headers de segurança.

  3. Shopify

    Storefront API (GraphQL)

    Carrinho persistido na Shopify e cupons validados por ela.

  4. Checkout

    Checkout hospedado pela Shopify

  5. Fulfillment

    DropshipBot

    Importação de produtos e envio dos pedidos aos fornecedores.

Catálogo com filtros por categoria e ordenação
Prévia do site da Barbearia do Barbio, com tema preto e dourado
Prévia do site em desenvolvimento. O código não é público.
Em desenvolvimento · código não públicoBarbearia do Barbio · em desenvolvimentoProjeto 7 de 7

Plataforma de agendamento para barbearias

Monorepo com front-end Next.js e API REST em camadas, em desenvolvimento para uma barbearia, ainda sem contrato fechado. O repositório é privado, então aqui está a arquitetura e uma prévia do site.

Next.jsNode.jsExpressPostgreSQLPrismaDocker
Código não público
Ver arquitetura e pontos de engenharia

Pontos de engenharia

  • ProdutoAgendamento encaminhado ao Trinks, que segue como fonte oficial da agenda.
  • InfraBug de alias de path do TypeScript que só aparecia no build Docker de produção, diagnosticado e corrigido.

Arquitetura

  1. Frontend

    Next.js 14 · App Router · TypeScript · Tailwind CSS

    Identidade visual própria e SEO técnico com JSON-LD.

  2. API REST

    Node.js · Express · JWT · Zod

    Autenticação JWT, validação de entrada e área /minha-conta.

  3. Camadas

    Clean Architecture · Repository Pattern

    Regras de negócio separadas da infraestrutura.

  4. Dados

    Prisma · PostgreSQL

  5. Entrega

    Docker Compose

    Ambiente orquestrado com Docker Compose.

Outros repositórios públicos

Repositórios novos entram aqui sozinhos, com descrição e links tirados do README.

  • Repositório públicoJava

    Simulando uma Conta Bancária pelo Terminal

    Desafio de projeto do Santander Bootcamp 2024 (Backend com Java) na DIO.

    Java
  • Repositório públicoPowerShell

    Laboratorio de Suporte de TI

    Ambiente de laboratorio que reproduz a rotina de um service desk: dominio Active Directory com usuarios, grupos e politicas, ferramenta de chamados GLPI com SLA e base de conhecimento, e scripts PowerShell para os atendimentos mais comuns de N1.

    Docker
  • Captura de tela de Agendamento API: Escolha do serviço
    Repositório públicoPython

    Agendamento API

    Backend de agendamento multi-tenant, feito para ser consumido por vários sites front end (landing pages, sites institucionais, lojas) através de uma API HTTP. O dono de cada negócio define as datas e os horários disponíveis, e o front end só consulta a API para exibir e criar agendamentos.

    PythonSwagger/OpenAPIPostgreSQLRenderSupabase
  • Projeto acadêmico

    Telecall / ConnectCall

    Projeto acadêmico em grupo, em PHP e MySQL: site de uma empresa de telecomunicações com cadastro e login de usuários, geração de PDF e envio de SMS.

    PHPMySQL

Como construo

As tecnologias que uso por camada, a segurança e os testes. Selecione uma tecnologia para ver em quais projetos foi usada.

Frontend

Interfaces responsivas, tipadas e acessíveis

APIs

Back-end em camadas, com contrato claro

Dados

Modelagem relacional, regras no banco e migrações

Segurança

Camadas de proteção, da borda ao banco

Infraestrutura

Do commit ao deploy

Segurança na prática

Sessão e acesso no ITSM

  • Token de acesso de 15 minutos mantido só em memória
  • Refresh token rotativo em cookie httpOnly e SameSite=Strict, restrito a /api/auth
  • Refresh guardado como hash; reusar um token já usado derruba todas as sessões do usuário
  • Solicitante só vê os próprios chamados, e a API responde 404, não 403, para os de outras pessoas
  • Anexos validados pelos bytes do arquivo e baixados só por rota autenticada

Nos outros projetos

  • Limite de tentativas, mais restrito no loginSyre
  • Limite de 120 requisições por minuto por IPbrasil-econ
  • Refresh token rotativo e perfis de acessoSyre
  • Resposta idêntica para usuário inexistente e senha erradaSyre
  • Webhook validado por HMAC, com comparação timing-safe e deduplicaçãoOficina
  • CPF e CNPJ validados por dígito verificadorSyre
  • RLS em todas as tabelas, com teste que impede tabela sem RLSOficina
Ver o ITSM

Testes

280

testes automatizados no Syre

255
testes de back-end, contra PostgreSQL real
25
testes de front-end, com Testing Library
  • Vitest: Testes unitários e de integraçãoSyre, brasil-econ-dashboard e este portfólio
  • Jest: Testes unitários e de serviço da APIITSM
  • Supertest: Testes HTTP da APISyre e ITSM
  • Playwright: Fluxos completos testados num navegador realITSM
  • React Testing Library: Interface testada como o usuário usaSyre e este portfólio
  • node:test: Runner nativo do Node, sem framework externoOficina
  • PostgreSQL real nos testes: SQL, triggers, transações e restrições verificados no banco, não simuladosSyre, ITSM e brasil-econ-dashboard
  • GitHub Actions: Tipos, testes e build a cada push e pull requestSyre, Oficina, ITSM e brasil-econ-dashboard
  1. Push
  2. Tipos
  3. Testes
  4. Build

Sobre mim

  • Desenvolvedor full stack, do banco de dados à interface.
  • Atuo como desenvolvedor desde 2024 e em suporte técnico de TI desde 2019, atendendo pessoas presencialmente e por acesso remoto em formatação, montagem, troca de peças, remoção de vírus e lentidão de computadores e notebooks.
  • Também trabalho com dados: SQL, Excel avançado com tabelas dinâmicas e Power Query, e Power BI, aplicados no brasil-econ-dashboard.
  • Tecnólogo em Análise e Desenvolvimento de Sistemas pela UNISUAM (2022 a 2024). Inglês técnico intermediário.

Como eu trabalho

  • Parto do problema real do cliente: levantamento de requisitos antes de escolher tecnologia.
  • Documento decisões técnicas e débitos conhecidos no README, em vez de esconder o que ficou pendente.
  • Quando encontro um bug, ele vira teste de regressão e entra no histórico do projeto.

Uso IA como ferramenta de desenvolvimento. As decisões de arquitetura e segurança, os testes, a implementação e o debugging são meus.

Experiência

Do suporte técnico ao desenvolvimento de sistemas completos.

Atuação e formação

  • Desenvolvedor Full Stack (autônomo)

    jan/2024 – atual

    Sites e sistemas web sob demanda, do levantamento de requisitos ao deploy.

    • Sistema de uma oficina mecânica feito sozinho, do levantamento com o dono ao deploy: a oficina não aparecia nas pesquisas e não sabia de quem era cada carro nem qual era o problema dele
    • Gestão de clientes, veículos e ordens de serviço vendida por contrato e em uso, com mais de 20 veículos cadastrados
    • Perfil da oficina no Google atualizado e ligado a um site com domínio próprio e SEO local
    • Infraestrutura no nome do cliente por cerca de US$ 14 por mês, contra US$ 45 da alternativa avaliada
    • CI no GitHub Actions (tipos, lint, testes e build) em 4 projetos
  • Suporte técnico de TI (autônomo)

    dez/2019 – atual

    Atendimento a pessoas físicas, presencial e remoto.

    • Diagnóstico, formatação e instalação de sistemas em computadores e notebooks
    • Montagem, troca de peças, remoção de vírus e correção de lentidão
    • Suporte remoto via TeamViewer quando o problema é de software
  • Gestão de comunidade online (voluntário)

    fev/2023 – dez/2024

    Liderança da equipe de gestão de uma comunidade com cerca de 230 membros ativos por dia.

    • Equipe cresceu de 8 para até 56 pessoas
    • Cerca de 30 integrantes recrutados, selecionados e treinados
    • Cerca de 6 eventos de grande porte e vários menores
  • Tecnologia em Análise e Desenvolvimento de Sistemas

    jun/2022 – dez/2024

    UNISUAM - Centro Universitário Augusto Motta

Cursos complementares

  • Fundamentos de Programação com C# e .NETUdemy2026

© 2026 Matheus de Almeida Ansel. Todos os direitos reservados.