Luccare
Organiza a rotina diária de pessoas com necessidades especiais — medicações, alimentação, terapias — compartilhada entre pais e cuidadores, com histórico completo de execução e alertas de atraso. Nasceu do cuidado real com o Lucca.
Desenvolvedor full-stack. Construo aplicações web completas — do modelo de dados à interface — com Node.js, PostgreSQL e Next.js. Cada projeto aqui nasceu de uma necessidade concreta: cuidar de uma criança, organizar shows de uma banda, entender um financiamento.
Quatro aplicações em produção. Três produtos e uma peça de infraestrutura que autentica todos eles.
Organiza a rotina diária de pessoas com necessidades especiais — medicações, alimentação, terapias — compartilhada entre pais e cuidadores, com histórico completo de execução e alertas de atraso. Nasceu do cuidado real com o Lucca.
Do primeiro contato do cliente até o dia do evento. Funil de vendas que vira gestão operacional, com calendário central, checklists e alertas de prazo. Cada banda é um tenant isolado, com permissões granulares por vínculo.
Mostra parcela por parcela o que o banco não mostra: saldo devedor, correção monetária, juros, amortização e seguro. Suporta SAC e PRICE, indexação a TR, IPCA ou taxa personalizada, com aritmética decimal precisa.
O SSO que autentica todos os apps acima. JWT com rotação de refresh tokens, isolamento por aplicação (cada app tem seu próprio segredo e TTL), painel administrativo e documentação Swagger. Nenhum app armazena senha.
Para quem quer olhar por dentro: decisões de arquitetura, problemas difíceis e o que aprendi em cada projeto.
Cuidar de uma criança com necessidades especiais envolve várias pessoas — pai, mãe, cuidador, terapeuta — e uma rotina que não pode falhar. Sem um lugar central, cada um anota do seu jeito e ninguém sabe se o remédio das 14h foi dado.
Monorepo com backend/ e frontend/. Backend em camadas: Controller → Service → Repository → Prisma → PostgreSQL. Rotas protegidas por middleware JWT. Versionado com Semantic Versioning (v1.0.0).
Banda vive de show, e show tem um ciclo longo: proposta, negociação, contrato, produção, dia do evento. Isso costuma morar em grupos de WhatsApp e planilhas soltas — prazos passam, datas conflitam.
Autorização por permissões granulares em vez de papéis fixos — perfis são só conjuntos nomeados de permissões. Identidade fica no GlobalAuth; autorização por banda é responsabilidade do app. Auditoria e observabilidade desde a v1.
Quem tem financiamento imobiliário raramente entende a própria parcela. O extrato do banco mostra o valor, não a conta: quanto foi correção monetária, quanto foi juro, quanto realmente abateu a dívida.
Aritmética decimal precisa (nada de float nativo) — em dinheiro, erro de arredondamento vira bug de confiança. Respostas 404 idênticas para "não existe" e "é de outro usuário", para não vazar existência de recurso. 130 testes de backend cobrindo o motor de cálculo.
Três apps independentes, três telas de login, três tabelas de senha para manter seguras. Reescrever autenticação a cada projeto é retrabalho — e cada cópia é mais uma superfície de ataque.
jwtSecret e TTL própriosCada app mantém um shadow user local sem senha, referenciando a identidade do GlobalAuth. Identidade é centralizada; autorização continua local, porque só o app sabe o que cada usuário pode fazer dentro dele.
Um padrão que se repete nos quatro projetos — e que é a razão de eles se parecerem por dentro.
Todo projeto começa com requisitos escritos, modelo de dados e decisões registradas. Ambiguidade resolvida no documento custa muito menos que resolvida em produção.
Controller → Service → Repository → ORM. Regra de negócio não mora no controller, e SQL não vaza para o service. Previsível de ler e barato de testar.
Autenticação centralizada, rotas protegidas por middleware, respostas que não vazam existência de recurso, senhas fora dos apps de produto.
Testes automatizados no backend e verificação ponta a ponta contra a stack rodando de verdade — banco, auth e frontend juntos, não só mocks.
Aberto a oportunidades, freelas e boas conversas sobre arquitetura. Costumo responder rápido.