~/gpraca

Guilherme Praça

Product Engineer · Technical PM · Fintech B2B

Do problema ao deploy. Descubro o problema, decido a solução, escrevo o código e confiro o resultado em produção. Venho de produto (PO, PM, Head of Product) e hoje entrego código em fintech B2B, com um sistema próprio de agentes de IA que trabalha sob regras e travas.

From problem to deploy. I find the problem, decide the solution, write the code and check the result in production. I come from product (PO, PM, Head of Product) and now ship code in B2B fintech, backed by my own system of AI agents that runs under explicit rules and guardrails.

781PRs mergeadosPRs mergedtotal na org · sincronizado do GitHuball-time in the org · synced from GitHub
145tickets na causa raiztickets fixed at root causejul–out/2026, documentadosJul–Oct 2026, documented
3,7×adoção da emissão automáticaauto-invoicing adoption7 → 26 configurações7 → 26 setups
18ddo FitBank ao 1º clienteFitBank to first customer08/10 → 26/10/2026Oct 8 → Oct 26, 2026
01 / métodomethod

Como eu trabalhoHow I work

  1. 01

    ProblemaProblem

    Meço antes de mudar: banco de produção (só leitura), PostHog, logs.

    Measure before changing: production database (read-only), PostHog, logs.

  2. 02

    DecisãoDecision

    Opções com recomendação. Decido recorte e regra; risco técnico alinho com o tech lead.

    Options with a recommendation. I decide scope and rule; technical risk goes through the tech lead.

  3. 03

    CódigoBuild

    Com IA, em PR pequeno, revisor independente e CI como juiz.

    With AI, in small PRs, an independent reviewer and CI as the judge.

  4. 04

    OperaçãoOperate

    Alarmes e runbook antes do go-live. Deploy de produção só por OIDC.

    Alarms and runbook before go-live. Production deploys only via OIDC.

  5. 05

    ResultadoResult

    Confiro em produção e meço. Incidente recorrente vira fix definitivo.

    Verify in production and measure. A recurring incident becomes a permanent fix.

02 / casoscases

Patches em produçãoPatches in production

Frentes que conduzi no ContrataPJ, plataforma B2B de gestão de prestadores PJ: contratos, notas fiscais e pagamentos.

Work I owned at ContrataPJ, a B2B platform for managing independent contractors in Brazil: contracts, service invoices and payouts.

[PATCH 1/4]

payments: go-live do FitBank, substituindo o Asaaspayments: FitBank go-live, replacing Asaas

2026-10
problemaproblem
Migrar pagamentos sem dashboard do parceiro e com a operação manual na cabeça das pessoas.
Move payments with no partner dashboard and the manual operation living in people's heads.
o que fizwhat I did
Fechei com o FitBank URL de produção, mTLS, conta de taxa, P2P e webhooks. Runbook, 10 alarmes no CloudWatch e fluxo de estorno de repasse recusado. Achei a causa do 401 nos webhooks: conflito de certificado do lado do parceiro.
Closed production URL, mTLS, fee account, P2P and webhooks with FitBank. Runbook, 10 CloudWatch alarms and a rejected-payout refund flow. Found the cause of the webhook 401s: a certificate conflict on the partner's side.
resultadoresult
Produção validada em 21/10, webhooks em 23/10, primeiro cliente real em 26/10.
Production validated Oct 21, webhooks Oct 23, first real customer Oct 26.
[PATCH 2/4]

kyc: regra de titularidade com Serpro e e-CNPJkyc: ownership rule backed by Serpro and e-CNPJ

2026-10
problemaproblem
Um MEI foi aprovado com o CPF errado, repassado por WhatsApp.
A sole proprietor was approved with the wrong taxpayer ID, passed along over WhatsApp.
decisãodecision
O nome nunca libera sozinho. O Serpro confirma o CPF; um e-CNPJ válido basta; cada contratante escolhe o modo de revisão.
A name alone never approves. Serpro confirms the ID; a valid e-CNPJ is enough; each client picks its review mode.
resultadoresult
Spec e 18+ PRs em dois dias, anunciado a 205 contratantes.
Spec and 18+ PRs in two days, announced to 205 client companies.
[PATCH 3/4]

nfse: emissão automática com aviso recortado por dadonfse: automatic invoicing with a data-targeted launch

2026-09..10
problemaproblem
Feature pronta, pouca adoção. E-mail para todos atingiria quem só faz upload.
Feature shipped, low adoption. Emailing everyone would hit people who only upload.
o que fizwhat I did
Recortei o público no banco: 2.957 vínculos viraram 486 e-mails.
Targeted the audience in the database: 2,957 links became 486 emails.
resultadoresult
De 7 para 26 configurações novas (3,7×).
From 7 to 26 new setups (3.7×).
[PATCH 4/4]

crawler: medir antes de mexer no logincrawler: measure before touching the login

2026-10
problemaproblem
"88% dos erros são login": o número que todo mundo repetia.
"88% of errors are login": the number everyone repeated.
o que fizwhat I did
Mostrei que vinha de uma classificação antiga; o problema real era a validação da senha. Instrumentei o motivo da recusa antes de construir.
Showed it came from an outdated classification; the real issue was password validation. Instrumented the rejection reason before building.
resultadoresult
Prioridade decidida com dado, não com premissa.
Priority set by data, not by assumption.
03 / IAAI

IA com governançaAI with governance

Um conjunto de agentes sobre o Claude Code que multiplica minha entrega. A IA executa sob travas; produto e merge têm dono humano.

A set of agents on top of Claude Code that multiplies my output. AI executes under guardrails; product and merge have a human owner.

pstree -a claude
claude
 ├─ coding-fleet   issues → worktree por issue → código → revisor independente → PR
 ├─ ticket-fleet
 │   ├─ reader      quarentena: lê o texto do cliente, sem outras ferramentas
 │   └─ executor    nunca vê o texto bruto; diagnostica e corrige
 ├─ merge-fleet    leva cada PR a CI verde + revisão aprovada
 └─ guardrails     hooks contra push indevido, vazamento e credencial
claude
 ├─ coding-fleet   issues → worktree per issue → code → independent reviewer → PR
 ├─ ticket-fleet
 │   ├─ reader      quarantined: reads customer text, no other tools
 │   └─ executor    never sees raw text; diagnoses and fixes
 ├─ merge-fleet    drives each PR to green CI + approved review
 └─ guardrails     hooks against bad pushes, leaks and credentials
04 / stack

Stack e domínioStack & domain

MAINTAINERS
PAYMENTS / BaaS
K:  FitBank, Asaas, Pix, BolePix, mTLS, webhooks

NFS-e
K:  Emissor Nacional, Focus NFe, NBS, MEI/ME

KYC / IDENTITY
K:  Serpro Integra Contador, Receita, e-CNPJ

CONTRACTS · PUBLIC API
K:  Autentique, API keys, rate limits
lsmod
react_ts        frontend, backoffice, design system
node_ts         clean arch, TypeORM, queues, outbox
postgres        RDS, migrations, SQL
aws             RDS Lambda SQS S3 CloudWatch IAM
opentofu        IaC · GitHub Actions + OIDC
observability   New Relic, Sentry, PostHog
playwright      e2e, browser QA
05 / princípiosprinciples

Coding style

  1. Meça antes de mudar.Measure before you change.O número que todo mundo repete pode estar errado.The number everyone repeats may be wrong.
  2. Decisão de produto tem dono.Product decisions have an owner.Opções com recomendação, e alguém decide.Options with a recommendation, and someone decides.
  3. Fix definitivo acima de workaround.Permanent fix over workaround.Como isso nunca mais acontece?How does this never happen again?
  4. Mudança mínima, PR pequeno.Minimal change, small PR.Branch da main, squash, CI como juiz.Branch off main, squash, CI as the judge.
  5. PR pra quem não lê diff.PRs for people who don't read diffs.Impacto no fluxo e na UX; rollback e flags.Flow and UX impact; rollback and flags.
  6. Produção é sagrada.Production is sacred.Deploy só por OIDC, banco só leitura.Deploy only via OIDC, database read-only.
06 / trajetóriacareer

git log

git log --graph --oneline career
* 2026-08  ContrataPJ    Product Engineer          (HEAD)
* 2025-12  ContrataPJ    Head of Product / Technical PM
* 2024     uCondo        Product Owner / PM        700k+ usuários
* 2023     IBM           Product Owner
* 2022     Stefanini     IT Project Manager
* 2021     Dix Capital   Project / Product Manager fintech de crédito
* 2026-08  ContrataPJ    Product Engineer          (HEAD)
* 2025-12  ContrataPJ    Head of Product / Technical PM
* 2024     uCondo        Product Owner / PM        700k+ users
* 2023     IBM           Product Owner
* 2022     Stefanini     IT Project Manager
* 2021     Dix Capital   Project / Product Manager credit fintech
código abertoopen source · codeberg.org/guilherme-praca ↗

payments-webhook-playground

planejadoplanned

Projeto público: webhooks com HMAC, duplicação e desordem; consumidor idempotente, retry e DLQ.

Public project: HMAC webhooks with duplicates and reordering; idempotent consumer, retry and DLQ.

nfse-ops-dashboard

planejadoplanned

Projeto público: máquina de estados da nota, retry, logs estruturados e alerta.

Public project: invoice state machine, retry, structured logs and alerting.

07 / agoranow

/now

ouvindolistening
estudando e aprofundandostudying & going deeper
08 / contatocontact

whoami

  • UniCesumar: Tecnólogo em Banco de Dados (em andamento)
  • G4 Leadership Academy · Scrum Foundation · ITIL 4
  • Claude 101 · Agent Skills · N8N Automation
  • UniCesumar: Database Technology degree (in progress)
  • G4 Leadership Academy · Scrum Foundation · ITIL 4
  • Claude 101 · Agent Skills · N8N Automation