Engenheiro de software full stack. Projeto e opero produtos de ponta a ponta — modelagem de dados, APIs, infraestrutura na edge, serviços de longa duração e a interface que o usuário final vê.
Meu foco está em sistemas multi-tenant, tempo real e arquiteturas que custam pouco para rodar e pouco para manter. Prefiro poucas peças bem escolhidas a muitas peças da moda, e trato observabilidade, idempotência e consistência transacional como requisitos, não como extras.
const joao = {
focus: ["platform engineering", "real-time systems", "product"],
languages: ["TypeScript", "JavaScript", "SQL / SurrealQL"],
runtime: ["Node.js", "Cloudflare Workers", "Linux (VPS)"],
data: ["SurrealDB", "PostgreSQL"],
principles: ["simple > clever", "idempotent by default", "own the whole stack"],
};Infraestrutura para criar, hospedar e operar múltiplos bots de Discord a partir de um único painel.
- Runtime multi-tenant — um pool de processos gerencia N bots de clientes diferentes; o estado desejado vive no banco e o runtime converge para ele (modelo declarativo, sem deploy por bot).
- SurrealDB como fonte de verdade — configuração, tenants e estado de execução no mesmo modelo, com consultas em tempo real para propagar mudanças.
- Dashboard de gestão — provisionamento, configuração e acompanhamento dos bots sem acesso à infraestrutura.
TypeScript · Node.js · SurrealDB · Discord Gateway
Arquitetura
flowchart LR
D[Dashboard] -->|config / tenants| DB[(SurrealDB)]
DB -->|live queries| R[Runtime multi-tenant]
R --> P1[Bot A]
R --> P2[Bot B]
R --> P3[Bot N]
P1 & P2 & P3 <-->|WebSocket| G[Discord Gateway]
R -->|estado de execução| DB
perfil.wtf — perfis personalizáveis em produção
Plataforma pública de perfis com links, música, presença do Discord em tempo real, feed de imagens, loja e painel administrativo.
- Edge-first — Next.js 15 servido por Cloudflare Workers (OpenNext), com roteamento por subdomínio e host no middleware.
- Serviço de presença dedicado — processo persistente conectado ao Gateway do Discord, mantendo snapshots de presença fora do ciclo request/response.
- Importação idempotente — ingestão de histórico em lotes com cursor persistente, retomável após falhas e reinícios.
- Pagamentos consistentes — webhooks do Mercado Pago validados por assinatura; pedidos e benefícios atualizados na mesma transação.
- Storage próprio — serviço autenticado de upload com limites por tipo de mídia.
- Migração de dados — transição de PostgreSQL para SurrealDB sem perda de registros existentes.
Next.js · Cloudflare Workers · SurrealDB · OAuth2 · Mercado Pago · Tailwind
Arquitetura
flowchart LR
U[Usuário] --> CF[Cloudflare Workers<br/>Next.js 15]
CF --> DB[(SurrealDB)]
CF --> ST[Storage service]
CF <-->|OAuth2| DC[Discord]
MP[Mercado Pago] -->|webhook assinado| CF
PB[Presence service<br/>VPS] <-->|Gateway| DC
PB -->|snapshots / feed import| DB
| Design antes do código | Modelo de dados e contratos primeiro; a implementação segue. |
| Falhas são o caso comum | Retries idempotentes, cursores persistentes, webhooks verificados. |
| Custo é requisito | Edge para o que é stateless, VPS para o que precisa de conexão persistente. |
| Dono do ciclo inteiro | Do schema ao deploy, passando por monitoramento e suporte. |


