~/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
145incidentes de produção resolvidos na causa raizproduction incidents fixed at the root causelogs, banco e código até a linha do problemalogs, database and code down to the failing line
5+anos entre produto e engenhariayears across product and engineeringde gestão de projeto a Product Engineerfrom project management to product engineer
Pagamentos no ar em 13 diasPayments live in 13 daysAssumi o go-live do FitBank e validei em produção em 13 dias: mTLS, webhooks, runbook e 10 alarmes.Took over the FitBank go-live and validated it in production in 13 days: mTLS, webhooks, runbook and 10 alarms. Regra de KYC em 2 diasKYC rule in 2 daysUm MEI aprovado com o CPF errado virou regra com Serpro e e-CNPJ: spec, 18+ PRs e anúncio a 205 contratantes.A contractor approved with the wrong tax ID became a rule with Serpro and e-CNPJ: spec, 18+ PRs and a launch to 205 customers. O dado derrubou a premissaThe data killed the premiseO "88% dos erros são login" vinha de uma classificação antiga. Medi o motivo real antes de construir."88% of errors are login" came from an outdated classification. I measured the real reason before building.
01 / métodomethod

Como eu trabalhoHow I work

  1. 01

    DescobertaDiscovery

    Converso com clientes e com o CS, faço entrevistas, leio o banco de produção, os funis no PostHog e os logs. Mais de uma vez o dado derrubou a premissa que todo mundo repetia.

    I talk to customers and to CS, run interviews, read the production database, PostHog funnels and logs. More than once the data killed the premise everyone kept repeating.

  2. 02

    DecisãoDecision

    Decido recorte, regra de negócio, prioridade e arquitetura, e respondo pelo resultado. Valido antes de escalar: teste A/B, protótipo, rollout por flag e conversa direta com cliente.

    I decide scope, business rules, priority and architecture, and own the outcome. I validate before scaling: A/B tests, prototypes, flag-based rollouts and direct customer conversations.

  3. 03

    ConstruçãoBuild

    Desenho o modelo de dados e o contrato da API e implemento ponta a ponta:

    I design the data model and the API contract and build end to end:

    backend
    Node + TypeScript em clean architecture, TypeORM e Postgres, migrations idempotentes, filas, outbox e jobs assíncronos.
    Node + TypeScript in clean architecture, TypeORM and Postgres, idempotent migrations, queues, outbox and async jobs.
    frontend
    React + TypeScript: telas do produto e do backoffice sobre um design system próprio, em monorepo pnpm.
    React + TypeScript: product and back-office screens on a custom design system, in a pnpm monorepo.
    integraçõesintegrations
    Pagamentos (FitBank, Asaas, Pix, BolePix), fiscal (Emissor Nacional, Focus NFe), identidade (Serpro) e contratos (Autentique), com mTLS, webhooks, retry e idempotência.
    Payments (FitBank, Asaas, Pix, BolePix), tax invoicing (Emissor Nacional, Focus NFe), identity (Serpro) and contracts (Autentique), with mTLS, webhooks, retries and idempotency.
    API
    API pública com chaves por cliente, limites de uso e referência documentada.
    Public API with per-client keys, rate limits and documented reference.
    qualidadequality
    Testes unitários, de integração e e2e com Playwright; PRs pequenos, revisados e com CI.
    Unit, integration and Playwright e2e tests; small, reviewed PRs with CI.
    IAAI
    Agentes que eu orquestro aceleram a escrita; arquitetura e revisão final são minhas.
    Agents I orchestrate speed up the writing; architecture and final review are mine.
  4. 04

    OperaçãoOperate

    Infra como código (OpenTofu) na AWS, deploy contínuo por GitHub Actions com OIDC, alarmes, métricas e runbook antes do go-live. Incidente eu sigo até a causa raiz.

    Infra as code (OpenTofu) on AWS, continuous deploys through GitHub Actions with OIDC, alarms, metrics and a runbook before go-live. I chase incidents down to the root cause.

  5. 05

    ResultadoResult

    Meço o efeito em produção e itero. Incidente recorrente vira fix definitivo; feature sem adoção volta para a descoberta.

    I measure the effect in production and iterate. A recurring incident becomes a permanent fix; a feature without adoption goes back to discovery.

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
O aviso chegou só a quem podia usar a emissão automática, sem incomodar quem só faz upload, e a adoção cresceu nas semanas seguintes.
The announcement reached only people who could use automatic invoicing, without bothering those who only upload, and adoption grew in the following weeks.
[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 as regras que eu escrevo; produto, arquitetura e merge são decisões minhas.

A set of agents on top of Claude Code that multiplies my output. AI runs under the rules I write; product, architecture and merge are my calls.

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. Eu decido e assumo.I decide and I own it.Produto, arquitetura e prioridade: escolho, explico o trade-off e respondo pelo resultado.Product, architecture and priority: I choose, explain the trade-off and answer for the result.
  3. Fix definitivo acima de workaround.Permanent fix over workaround.Como isso nunca mais acontece?How does this never happen again?
  4. Entrega contínua.Continuous delivery.Muitos PRs pequenos em vez de um gigante, com revisão e CI antes de cada merge.Many small PRs instead of one giant one, with review and CI before every merge.
  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 com segurança.Production done safely.Menor privilégio no acesso a dados, deploy só por pipeline e mudança de dado revisada como código.Least-privilege data access, pipeline-only deploys and data changes reviewed like code.
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
07 / códigocode

Veja meu códigoSee my code

Projetos meus, do zero e abertos, com as decisões de engenharia explicadas no README: problema, decisão e trade-off.

My own projects, from scratch and open, with the engineering decisions explained in each README: problem, decision and trade-off.

$ git clone https://codeberg.org/guilherme-praca/▍ abrir no Codeberg ↗open on Codeberg ↗

$ contribuições open source em github.com/guilherme-praca

$ open source contributions at github.com/guilherme-praca

demos, rodam no seu navegadordemos, running in your browser
no fornoin the oven

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.

pr-reviewer

planejadoplanned

Projeto público: revisor de PR com IA sobre o Hermes Agent, com regras explícitas e medição de acerto.

Public project: an AI PR reviewer on top of Hermes Agent, with explicit rules and measured accuracy.

08 / agoranow

/now

ouvindolistening
estudando e aprofundandostudying & going deeper
09 / contatocontact

whoami

  • Autodidata, sem graduação: 5+ anos de mercado e o que aprendi entregando em produção
  • Comecei o Tecnólogo em Banco de Dados (UniCesumar) e parei
  • Hoje estudo por conta própria, com um plano semanal (veja /now)
  • G4 Leadership Academy · Scrum Foundation · ITIL 4
  • Claude 101 · Agent Skills · N8N Automation
  • Self-taught, no degree: 5+ years in industry and what I learned shipping to production
  • Started a Database Technology program (UniCesumar) and stopped
  • Studying on my own today, on a weekly plan (see /now)
  • G4 Leadership Academy · Scrum Foundation · ITIL 4
  • Claude 101 · Agent Skills · N8N Automation