João Victor Candido

Fullstack Developer

Desenvolvedor fullstack com foco em Java no backend e TypeScript no frontend. Construo APIs, dashboards e aplicações web do banco de dados à interface.

projetos selecionados sob NDA

Sistema corporativo para gestão de projetos, atividades e alocação de recursos humanos, com módulos integrados de controle de horas, planejamento ágil e inventário. Fornece dashboards analíticos, visualizações em Kanban e Gantt, além de relatórios exportáveis. Suporta comunicação assíncrona via WebSocket e processamento de tarefas em background.

Destaques técnicos

  • Migração progressiva do frontend para arquitetura moderna sem big-bang rewrite: camada refactor/ com Tailwind v4, TanStack Query v5, Radix UI e padrão view-model convive com código legado em MUI/Axios/Redux, permitindo evolução incremental sem paralisar entregas
  • Backend com Dependency Injection via dependency-injector: serviços resolvidos por container, desacoplando camada de negócio dos ViewSets do DRF e facilitando testes unitários com mocks por substituição de binding
  • Stack assíncrona dupla: Celery + Redis para tarefas de longa duração (geração de PDFs com WeasyPrint, exportações com Pandas/OpenPyXL) e Django Channels para comunicação em tempo real, ambos containerizados e monitorados via Flower
  • Pipeline CI/CD com builds multi-stage Docker (Node 22 → Caddy para frontend; Python 3.12 → slim runtime para backend), reduzindo tamanho de imagem e separando artefatos de build de artefatos de runtime
  • Integração de IA generativa (Gemini) como módulo plugável, isolado do core de negócio, com abstração de serviço que permite troca de provider sem impacto nos chamadores
linguagens
TypeScript Python 3.12 SQL
frameworks
React 18 Vite 5 Django 6 Django REST Framework 3.17 Celery 5 Django Channels 4
banco de dados
PostgreSQL 17 Redis
infraestrutura
Docker Docker Compose Traefik Caddy Gunicorn AWS S3 GitHub Actions
bibliotecas
TanStack Query v5 Redux Toolkit Zustand Tailwind CSS v4 Material UI v5 Radix UI React Hook Form + Zod SimpleJWT WeasyPrint Pandas / NumPy / OpenPyXL Google Generative AI (Gemini) Pytest + Factory Boy
arquitetura

Monolito modular no backend (11 Django apps desacoplados) + SPA com camada de refatoração progressiva no frontend; Service Layer e Repository Pattern no backend; Feature-based structure com hooks de view-model no frontend

Plataforma SaaS multi-tenant com autenticação completa, autorização baseada em grupos e permissões, gestão de projetos e equipes, e integração de cobrança por assinatura. O backend expõe uma API REST assíncrona consumida por um frontend React com roteamento baseado em arquivos, gerenciamento de estado de servidor e suporte a múltiplos idiomas. Suporta comunicação em tempo real via WebSocket e processamento de tarefas assíncronas via fila de mensagens.

Destaques técnicos

  • Adoção de Ports & Adapters por módulo: cada adaptador concreto (Redis, SQL, Stripe, aiosmtplib) implementa uma interface abstrata (Port), permitindo substituição e teste com fakes sem alterar lógica de negócio
  • Pipeline assíncrono de e-mail via RabbitMQ + FastStream: requests HTTP não bloqueiam no envio de e-mail — a tarefa é publicada na fila e consumida por um worker separado (start-stream), desacoplando latência de SMTP do ciclo request/response
  • Token refresh transparente no frontend: o cliente Ky intercepta respostas 401, executa refresh de token e re-envia a request original automaticamente, com deduplicação para evitar múltiplas chamadas simultâneas de refresh
  • Tipagem end-to-end: o schema OpenAPI gerado pelo FastAPI é convertido em tipos TypeScript via openapi-typescript, eliminando drift entre contratos de API e consumo no frontend
  • Observabilidade completa em desenvolvimento: stack local com OpenTelemetry (traces), Prometheus (métricas), Loki (logs) e Tempo, todos coletados pelo Grafana Alloy e visualizados no Grafana
  • Multi-tenancy com isolamento por políticas de permissão: acesso a recursos é validado por Policy classes no nível de serviço, combinando tenant_id + grupo/permissão do usuário antes de qualquer operação
  • Build multi-stage com imagem mínima de produção: Dockerfile em 4 estágios (base → builder → migrations → runtime) gera imagem final sem ferramentas de build, rodando como usuário não-root (uid 1001)
linguagens
Python 3.14 TypeScript 5.9
frameworks
FastAPI SQLAlchemy (async) FastStream React 19 TanStack Router v1 TanStack Query v5 React Hook Form Zod
banco de dados
PostgreSQL 17 Redis 7
infraestrutura
Docker (multi-stage) Docker Compose Traefik RabbitMQ MinIO GitHub Actions Cloudflare Pages Gunicorn + Uvicorn
bibliotecas
Stripe SDK Socket.IO OpenTelemetry Prometheus + Grafana + Loki + Tempo Alembic Tailwind CSS v4 shadcn/ui + Radix UI Zustand openapi-typescript Pytest + testcontainers Vite 7
arquitetura

Clean Architecture com padrão Ports & Adapters (Hexagonal) no backend, organizada em módulos core (authn, authz, billing, tenants) e features (projects, teams). Cada módulo segue a hierarquia: Routes → Services → Ports (interfaces abstratas) → Adapters (implementações concretas). Frontend com Feature-Based Structure e separação entre server state (TanStack Query), client state (Zustand) e form state (React Hook Form).

Plataforma web para acompanhamento em tempo real do ciclo de vida de registros logísticos, com visualização em modo Kanban e lista. Suporta colaboração multi-usuário com atualizações reativas via WebSocket, rastreamento geográfico com mapas interativos e gestão de etapas com histórico persistido em banco de dados relacional. Inclui sistema de filtros avançados, alertas automáticos e painel financeiro agregado.

Destaques técnicos

  • Real-time sem polling: painel de monitoramento atualiza via pg_notify (signal table + Supabase Realtime channel), eliminando long-polling e reduzindo carga no banco
  • Materialized views como camada de leitura: dados agregados de 6+ matviews e 15+ views SQL absorvem complexidade de joins e cálculos no banco, mantendo o cliente React simples e tipado via geração automática de tipos (supabase gen types)
  • Pipeline CI/CD completo com 12 workflows GitHub Actions: lint, typecheck, format em PRs; deploy separado para dev e prod; deploy autônomo de Edge Functions; build Docker com migrations atômicas em transação única para rollback seguro
  • Permissões temporárias via store dedicado: modelo de concessão de edição granular por registro, sem alterar RLS do banco, gerenciado em estado efêmero no cliente
  • Ambiente validado em runtime com Zod: variáveis de ambiente parseadas e tipadas no boot, lançando erro explícito em vez de falhar silenciosamente em produção
linguagens
TypeScript 5.8 SQL (PostgreSQL) JavaScript (Deno)
frameworks
React 19 React Router v6 Vite 5 (SWC) TanStack React Query v5 Zustand 5 React Hook Form Zod Tailwind CSS v4 shadcn/ui (Radix UI)
banco de dados
Supabase (PostgreSQL 15) Materialized Views pg_notify / LISTEN-NOTIFY Row-Level Security (RLS) Supabase Auth Supabase Realtime Supabase Edge Functions (Deno)
infraestrutura
Docker (multi-stage) Docker Compose GitHub Actions (12 workflows)
bibliotecas
dnd-kit Recharts Leaflet + react-leaflet Vitest 3 Testing Library Playwright
arquitetura

Layered SPA — separação explícita em pages / components / hooks / services / store / lib, com service layer isolando acesso ao banco, custom hooks encapsulando queries+mutations via TanStack Query, e estado global particionado em 4 stores Zustand independentes (auth, ui, filters, permissions)

Plataforma integrada de gestão que centraliza o acompanhamento de processos, controle financeiro, cadastro de pessoas e geração de relatórios. Oferece dashboards analíticos em tempo real, módulo de fila de atendimento e exportação de dados para Excel. Suporta fluxos administrativos e judiciais com rastreabilidade completa de movimentações e pendências.

Destaques técnicos

  • Build unificado: Maven orquestra npm install + npm run build (Vite) e empacota o bundle React estático diretamente no WAR do Spring Boot — único artefato para deploy, sem necessidade de servidor web separado
  • Camada de serviços baseada em interfaces Java, permitindo inversão de dependência e facilitando substituição de implementações sem impacto nos controllers
  • HikariCP com pool explicitamente tunado (min-idle=5, max-pool=20, leak-detection=15s) para suportar carga concorrente com controle fino de recursos de conexão
  • Queries JPQL com normalização de acentuação via TRANSLATE para suportar busca textual tolerante a variações de grafia em português
  • Integração com Oracle Cloud Infrastructure para armazenamento de arquivos, abstraída em configuração injetável via Spring IoC
  • Segurança em camadas: CorsFilter → AuthTokenFilter (JWT stateless) → Spring Security RBAC com roles e perfis de acesso por feature
linguagens
Java 21 TypeScript 5.8 SQL
frameworks
Spring Boot 2.5.4 Spring Data JPA Spring Security React 18.3 Redux Toolkit 2.6 Material-UI v5 Formik + Yup React Router DOM 7
banco de dados
PostgreSQL 15
infraestrutura
Oracle Cloud Infrastructure HikariCP Maven WAR deploy GitHub Packages
bibliotecas
Apache POI 5.2 Apache Tika 2.0 JJWT 0.11.5 Vite 7 Chart.js + ApexCharts FullCalendar i18next Axios Lombok
arquitetura

Layered Architecture (Controller → Service Interface → Repository → JPA Entity). Monorepo Maven com frontend React/Vite empacotado como WAR dentro do módulo backend via exec-maven-plugin. Frontend consome API REST via Axios com injeção automática de JWT nos headers.

Plataforma fullstack composta por API REST em Spring Boot integrada a ERP externo e aplicativo mobile React Native com suporte offline. O sistema centraliza fluxos de inspeção, manutenção, aprovação de documentos, checklists e registros operacionais de campo. O app mobile sincroniza dados localmente via banco SQLite e os consolida com o servidor ao restabelecer conectividade.

Destaques técnicos

  • Integração com ERP externo via camada DAO dedicada (dao/sankhya), isolando o domínio da aplicação das particularidades do sistema legado de terceiros
  • Estratégia offline-first no app mobile com WatermelonDB (SQLite): modelos locais com 37+ tabelas, migrações de schema versionadas e serviço de sync bundle para reconciliação com a API quando há conectividade
  • RoutingChatModel customizado sobre Spring AI para rotear chamadas entre múltiplos provedores de LLM (Anthropic, OpenAI, Gemini) com rastreamento de custo de tokens via IaCostService
  • Pipeline de processamento de anexos com IA: AiAttachConverterService converte documentos (imagens, PDFs) para análise multimodal, integrando OCR nativo (ML Kit) no mobile com análise por LLM no backend
  • Geração de relatórios server-side combinando JasperReports (PDF) e Apache POI (XLSX) a partir das mesmas fontes de dados, servidos via endpoints REST autenticados por JWT
  • Múltiplos perfis de configuração (prod, test, treina) com propriedades isoladas por ambiente, permitindo deploy em ambientes paralelos sem alteração de código
linguagens
Java 17 TypeScript 5.9
frameworks
Spring Boot 3.4 Spring Security Spring Data JPA Spring AI 1.1 React Native 0.81 Expo 54 Redux 5 + Immer
banco de dados
Oracle (Hibernate 6 / JPA) SQLite (WatermelonDB 0.27)
infraestrutura
JWT (jjwt) HTTPS / TLS Codemagic CI/CD EAS Build Micrometer + Prometheus Sentry OneSignal
bibliotecas
Spring AI (multi-provider: Anthropic, OpenAI, Gemini) JasperReports Apache POI iCal4j ML Kit OCR Vision Camera 4 MapStruct 1.6 SpringDoc OpenAPI 2.8 Lombok
arquitetura

Layered Architecture (Controller → Service → DAO → Model) no backend; Offline-First com sync bundle no mobile. Facade pattern para agregação de dados de ERP externo. RoutingChatModel para abstração e roteamento entre múltiplos providers de LLM.

Trabalho com consultoria e outsourcing de desenvolvimento, atuando principalmente com Java em projetos corporativos. Sou formado em Análise e Desenvolvimento de Sistemas pela Uninter. Fora do código, me interesso por games e música, duas áreas que volta e meia acabam virando projeto de estudo também.