Foto de João Victor Francisco, sorrindo, de camiseta preta

Olá =)

João Victor
Francisco

Desenvolvedor web full stack no Rio de Janeiro: TypeScript, React, Next.js e Node.js.

Estágio na Azzas 2154, grupo dono da FARM Rio, onde trabalho no e-commerce das marcas do grupo. E tenho a Quazz, consultoria de sites e sistemas para pequenos negócios, que toco em parceria. O primeiro sistema, o caixa e financeiro de uma loja de biquínis, está no ar com mais de R$ 15 mil em vendas.

Um projeto por vez

Cada projeto é uma linha. Abra para ver os recortes e o que eu fiz.

antes disso: Driven, PUC-Rio, ITShare e MDM, no trajeto lá embaixo

de junho de 2026 em diante, tudo isto é a Quazz

3Quazz · primeiro projeto

Serena Biquínis

Loja de moda praia no Engenho Novo, no Rio, que vende no balcão e pelo WhatsApp. Antes não registrava nenhuma venda. É o projeto em que a Quazz mais trabalhou: fiz o sistema do PDV ao financeiro, em produção desde 19/09/2026.

O que eu fiz

  • PDV que vende mesmo sem internet, no computador e no celular.
  • Abertura e fechamento de caixa, cashback e troca no balcão.
  • Painel financeiro: fluxo de caixa, contas a pagar, DRE e conciliação bancária.
  • A página de links da loja.
  • Deploy com 4 pipelines e rollback por SHA.
Stack
  • Medusa v2
  • PostgreSQL
  • Redis
  • Docker
  • Oracle Cloud
PDV da Serena no computador: vitrine de biquínis com os tamanhos em estoque e o carrinho ao ladoRecorte ampliado do carrinho do PDV, com uma peça, cupom e o botão CobrarPDV da Serena aberto no celular, na tela da vitrineCard de um biquíni na vitrine do PDV: Candy Asa Delta Rosa, R$ 130,00, com o estoque por tamanhoTopo do painel financeiro da Serena, com o título SetembroPágina de links da Serena Biquínis, com fotos da loja e botão de atendimento pelo WhatsAppFoto da arara de biquínis dentro da loja Serenaa arara, no Engenho NovoLogo da Serena Biquínis
Recorte ampliado do carrinho do PDV, com uma peça, cupom e o botão Cobrar
O carrinho do PDV
PDV da Serena aberto no celular, na tela da vitrine
O PDV no celular
Topo do painel financeiro da Serena, com o título Setembro
O painel financeiro
Página de links da Serena Biquínis, com fotos da loja e botão de atendimento pelo WhatsApp
A página de links da loja
Foto da arara de biquínis dentro da loja Serena
A arara, no Engenho Novo
+R$ 15 mil

em vendas registradas desde 19/09/2026.

571 commits e 69 pull requests de junho a outubro de 2026, e 11 módulos próprios em cima do Medusa v2.

bastidores da Serena

Três histórias de bastidor da Serena. O que quebrou, o que ficou lento e uma troca de banco.

Bastidor · cashback

O cashback parou de cair

Nenhum erro, e nenhum cashback. O grafo de pedidos do Medusa devolvia items.quantity como undefined. Passei a ler items.detail.quantity.

Bastidor · catálogo

Catálogo de ~4,3 s para ~0,5 s

Mediana em produção, com 170 produtos e 647 variantes.

Catálogo (mediana)

antes~4,3 s
depois~0,5 s

Com o cache

sem474 ms
com45 ms
  • consultas em paralelo
  • cortei uma relação que custava ~1,2 s
  • pus cache invalidado por evento
Bastidor · banco

Troca de banco com 49 s fora do ar

Do Neon para PostgreSQL numa VM da Oracle Cloud.

Foi antes de a loja começar a usar o sistema.

fora do ar49 s
tabelas conferidas153
uma query, antes~125 ms
a mesma, depois< 1 ms
rollbackNeon guardado

IA no dia a dia, com freio

Uso IA todo dia para programar. O que me interessa é o que montei em volta dela. Escolha uma aba.

leia assim

Os números são do meu uso, de uma pessoa só. Cada um vem com o tamanho da amostra, e amostra pequena eu chamo de indício.

skill própria

O Claude orquestra, os outros executam

O Claude é dono do git. Codex, Gemini (pelo Antigravity) e outras instâncias do Claude executam em worktree isolado e nunca commitam. Cada execução vira uma linha num benchmark.

  1. Classifico o tipo da tarefa e os arquivos que ela pode tocar.
  2. Escolho o executor pela tabela do benchmark.
  3. Despacho num worktree isolado, em segundo plano.
  4. Checagem objetiva primeiro: build, lint, script de acessibilidade.
  5. Revisão por um modelo diferente do que produziu.
  6. Registro nota, tempo e o custo de orquestrar.
  7. Retrospectiva: a tabela de preferências é reescrita com o que foi medido.
execuções registradas91
página, Codex sol29 de 30
página, Gemini flash4 de 13
bug, Codex sol7 de 7
  • Um revisor inventou arquivos. A crítica de um modelo citou 6 planos que não existiam e declarou "100% verificado". Agora rodo ls antes de repassar um achado.
  • Build verde não é tela certa. Só digo "pronto" depois de abrir lado a lado com o original.
  • Não delego decisão de design, publicação nem merge na main.

As 91 execuções incluem falhas. A maior parte das falhas do Gemini flash foi permissão da ferramenta, não qualidade do modelo, e eu leio a célula sem elas. Abaixo de 3 execuções revisadas por célula é indício, não resultado.

second brain · Notion

A IA começa a sessão sabendo onde está

Antes, cada sessão começava lendo todas as regras e consultando o Notion. Agora são dois arquivos enxutos: o index.md, com a arquitetura, o mapa do repositório e as armadilhas, e o CURRENT_TASK.md, com só a tarefa em foco.

  • $ yarn brain:sync
  • # tarefas do Notion para o cache local
  • $ yarn brain:task 12
  • # o escopo vira a tarefa ativa
  • $ yarn brain:check
  • # build, tipos, lint e contraste
  • $ yarn brain:done
  • # gates ok: a tarefa vira Concluído no Notion
  • $
  • O Notion guarda a fila, e o cache local vale 24 h.
  • A IA transforma o escopo em critérios de aceite e arquivos afetados.
  • Com tarefa ativa, ela faz 0 consultas ao Notion.
  • Sem token da API, sincroniza pelo MCP do Notion e grava o mesmo cache.
  • Se o brain:check passou nos últimos 15 minutos, o brain:done reaproveita o resultado.

Não medi a economia de tokens, então não publico número.

harness · Serena

A parada antes de subir

O sistema da Serena vende de verdade, então a IA trabalha com trava. Tudo versionado no repositório.

  1. 1commitaudita a interface dos arquivos staged
  2. 2brain:checkbuild, tipos, lint e contraste
  3. 3pushaudita o app inteiro
  4. espera o meu sim4deploysó com aprovação explícita
  5. 5brain:donea tarefa fecha no Notion
  • Achado grave na auditoria bloqueia o commit e o push.
  • Push que dispara deploy, migração ou outro efeito externo pede a minha aprovação explícita.
  • Em .claude/rules ficam as lições de produção que a IA lê em toda sessão.

"Verde aqui não é funciona." Os gates dizem que compila, nada além. Tela só se aprova vendo renderizada.

Carrinho do PDV da Serena, com uma peça, cupom e o botão Cobrar
time · Tucano

Do Tucano de uma pessoa para um time

Tucano é um painel open source onde uma pessoa conversa com vários agentes de IA em canais. Na Quazz, eu e o Cauã, meu sócio na consultoria, usamos um fork meu para trabalhar em dupla no mesmo painel.

  • Um login por pessoa. O núcleo roda numa máquina ligada e cada um entra pelo navegador, com nome e senha.
  • Quem escreveu fica marcado. Nos canais e nas conversas diretas, a mensagem do Cauã aparece com o avatar e o nome dele, e a minha com os meus.
  • O agente sabe quem está falando e responde a quem falou por último.
  • O histórico é de todos. Quem entra depois lê o que já aconteceu.
C

o Cauã escreveu

você escreveu

esquema: cada mensagem leva o autor
Tela do Tucano: um canal chamado checkout onde um agente corrige um erro, abre a MR e outro agente revisa e pede aprovação
Tela do Tucano original, com dados de exemplo.

Projeto original: eduwxyz/tucano, licença Apache-2.0.

IA no produto

Só leitura de propósito

Um bot de Discord que responde perguntas sobre os logs recentes da operação. A segurança é por construção, não por prompt: uma injeção bem-sucedida não tem alavanca para puxar.

  • Sem executar comando e sem escrever em nenhum sistema.
  • Canal restrito e limite por usuário.

Red-team: 7 casos de prompt injection

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7

1 a 6: limpos de cara7: fechado com 1 linha no prompt

Skills, e onde usei

agrupadas pelo lugar onde cada uma foi parar

A base

  • JavaScript
  • TypeScript
  • React
  • Node.js

Serena Biquínis

  • Medusa v2
  • PostgreSQL
  • Redis
  • IndexedDB
  • Docker
  • Oracle Cloud
  • GitHub Actions
  • OpenTelemetry

Azzas 2154

  • VTEX IO
  • VTEX FastStore
  • VTEX legacy
  • Master Data
  • Deco CMS
  • APIs REST

Sites da Quazz e dos clientes

  • Next.js
  • Tailwind
  • Vercel
  • GitHub Actions
  • GA4
  • Clarity
  • SEO

MDM Sistemas e ITShare

  • React
  • styled-components
  • Figma
  • APIs REST
  • CSS
  • Oracle APEX
  • PostgreSQL

Na faculdade

  • Java
  • C
  • Python

No dia a dia

  • Claude Code
  • Codex
  • Gemini
  • Antigravity
  • Git
  • Gitleaks

Trajeto, ano a ano

a mesma história, numa agenda de anos

  1. Driven · bootcampDesenvolvimento web full stack. jan a out/2022 · 10 meses
  2. PUC-Rio · Ciência da Computação
    Formatura prevista para dez/2027. ago/2022 até hoje
  3. ITShare · analista de TI júniorRemoto. Renovei com CSS a identidade de um app em Oracle APEX, integrei uma plataforma de documentação ao PostgreSQL e fiz suporte. 2023 a 2024
  4. MDM Sistemas · estágioInterfaces em React com Styled-components consumindo APIs REST, e protótipos no Figma. 2024
  5. Azzas 2154 · estágio de dev webE-commerce das marcas do grupo (Animale, BYNV, Off Premium, Cris Barros, FARM, Fábula, Maria Filó, Foxton e outras), e-mails transacionais e correções pontuais. jan/2025 até hoje
  6. Quazz · minha consultoria em parceriaPrimeiro projeto: o sistema da Serena Biquínis, no ar desde 19/09/2026. Depois, sites de clientes. jun/2026 até hoje