SKILLS & TECNOLOGIAS
Frontend
React
Next.js
TypeScript
JavaScript
React Native
Tailwind CSS
Styled Components
Vue.js
Backend
Node.js
Express
NestJS
Fastify
REST API
Banco de Dados
PostgreSQL
MySQL
MongoDB
Prisma
Drizzle
Estado & Padrões
Redux
Zustand
Context API
Design System
Storybook
Clean Architecture
SOLID
Cloud & BaaS
Supabase
Firebase
AWS
Vercel
DevOps
Docker
CI/CD
Git
GitHub
GitLab
Qualidade
Jest
SEO
Design & Processo
Figma
UI/UX
Scrum
Kanban
IA & Tooling
Não é só usar ferramentas de IA — é usá-las com critério: direção clara, revisão de tudo e julgamento de arquitetura sempre humano. A IA acelera a execução; o controle do que vai pro produto continua meu.
Claude Code
Codex
Gemini
MCP Agents
Trade-offs & decisões
Algumas escolhas técnicas e o raciocínio por trás delas — onde estava o trade-off e por que decidi assim.
Drizzle vs Prisma
Uso os dois conforme o caso. Drizzle quando quero SQL-first, type-safe e leve, com migrations programáticas (EGP IoT). Prisma quando schema declarativo e DX pesam mais que o controle fino do SQL (MTCprop). Trade-off: Drizzle pede mais SQL na mão; Prisma adiciona abstração e peso ao bundle.
MySQL (ACID) vs NoSQL/BASE — ArqDoor
A ArqDoor envolve contratos, questões jurídicas e pagamentos — o domínio exige integridade forte. Optei por um relacional ACID (MySQL): atomicidade e consistência garantem que propostas, contratos e transações nunca fiquem em estado parcial. Um modelo BASE (consistência eventual) arriscaria a imutabilidade e a atomicidade que a plataforma precisa — não era o ajuste certo aqui.