Software Engineer · Full-Stack · End-to-End Ownership
Hand me a problem. I'll hand back a working product.
I work like an embedded product team of one: I take a problem from rough idea to a running product — design, build, deploy — with minimal hand-offs in between.
Operating Model
I tend to take a problem end-to-end — design, build, deploy, and the parts no one volunteers for: auth, billing, the deploy pipeline — so it lands as one decision instead of a chain of hand-offs.
I'm comfortable across the stack and across languages, so I can usually reach for the tool a problem wants rather than the one I happen to know. I lean on AI as a multiplier on delivery speed — it's a big part of why the work below — a venture firm's internal platform, two commercial products of my own, and the AI-first product I'm building now — each shipped from one pair of hands. I've also led a small team, so I'm comfortable coordinating when a problem is bigger than one person.
Flagship · Internal platform, shipped solo
Niterra Ventures
The investment team's work lived across a CRM and a stack of spreadsheets. I built one internal platform to bring it together — and it became how the team works.
Built for the venture arm of Niterra Group, it's the system of record for the whole investment lifecycle: portfolio companies and their quarterly financials, editable cap tables, scenario-based exit models, a deal funnel, expense & contract tracking, board-deck generation, and P&L / balance-sheet reporting — fed by live integrations and mapped Excel imports.
stack · SvelteKit · Svelte 5 · Bun · TypeScript · Tailwind 4 · shadcn-svelte · Drizzle / Turso · Zod · Lucia auth · LayerChart · TipTap · pdfkit · deployed on Vercel
integrates · Affinity CRM · PitchBook · Webflow
What it changed
120h → 1 day
Quarterly portfolio deck
Took the senior principal ~120 hrs by hand each quarter. The tool exports it in seconds; he finishes it by hand in about a day.
40+ users
Across the firm
The investment team's daily system of record — 10+ of them in it 2+ hrs a day.
8 → 1
One source of truth
Eight sprawling Excel sheets — some enormous — consolidated into one platform.
~1 hr / co / qtr
Saved on report intake
Quarterly company reports map straight in from Excel — no re-keying, every quarter, every company.
Inside the platform
The screens the investment team lives in — portfolio, exit models, cap tables, spend and board decks — that replaced the CRM and eight spreadsheets.


Exit modeling · the showpiece
A live scenario model from entry to exit, with the waterfall and comps a real diligence deck would carry.
The analytical heart of the platform — the scenario math a diligence team builds by hand, made live and reusable across the whole portfolio.
Portfolio & companies
Every holding, its rounds and ownership, and per-company financials tracked against plan.


Cap tables & deal flow


Spend & forecasting


Board decks & reporting


Screens from a public demo seeded with fictional data — no real portfolio data shown.
What I'm building now · AI-first product, solo
Crisálida
Brazil's independent healthcare professionals end their day with the notes still unwritten. I'm building the workspace where the AI writes the draft — and nothing is official until they sign.
Crisálida puts a solo practice in one place — agenda, patients and clinical documents — with an assistant that actually works the workspace: it searches the record, drafts session notes and reports citing their sources, books appointments, and asks before it changes anything. Drafts open in an editor the professional owns; a signature makes a document official and locks it for good. Built in Portuguese for psychologists, speech therapists, physiotherapists and nutritionists.
stack · SvelteKit · Svelte 5 · TypeScript · Bun · Tailwind 4 · shadcn-svelte · Drizzle / Turso · TipTap 3 · jsPDF · custom auth (Argon2) · OpenTelemetry · deployed on Vercel
ai · Vercel AI SDK · OpenRouter (model-agnostic) · 12 tools · streaming · human-in-the-loop action cards · source citations
How it's built
12 tools
An assistant with hands
The agent searches patients, reads the record, drafts documents and books appointments — every mutation becomes an in-chat card the professional confirms before it runs.
Ask · Review · Sign
The trust loop
The AI drafts from the patient record and cites which sessions it drew from; nothing is official until signed, and signed documents never change.
56 e2e tests
Solo, but disciplined
15 Playwright suites, a unit-coverage ratchet, ADRs and PR-based reviews — six months and 130 commits of building like a team.
Inside the workbench
One surface: the patient's record on the left, the document in the middle, the assistant docked on the right. The screens below are a demo workspace — the product itself speaks Portuguese.


The signature moment · draft → signed
A drafted school report waiting on the product's one irreversible action. Sign is the only loud button in the interface — everything else stays consulting-room calm.
Live at crisalida.app — real auth, real agenda, a real AI loop with confirmations. Pre-launch, moving weekly.The whole product — brand, UX, agent design, telemetry — from one pair of hands.
The assistant, working the day
Not a chat bolted on — the same agent plans the day, flags pending notes, and drafts against the record.
Agenda & patient records
The unglamorous foundation — scheduling and patient records — built first, so the AI has something true to draw from.
Calm by design
Templates set the structure the AI writes into, and the day opens on what's unfinished — not on a dashboard.
Demo workspace with fictional patients — no real clinical data shown · pre-launch, in active development.
Shipped Solo / Two Commercial Products
Two commercial products, shipped solo
Shipped Solo / Developer Tool
writequit.dev
Freelance developers juggle tasks, time, and invoices across three disconnected tools — and lose the thread.
- A full commercial SaaS — task manager, time tracker, invoice generator — in one terminal-native tool with vim keybindings and markdown tasks.
- Auth (WorkOS), invoice generation (jsPDF), real-time chat and shared client boards (Convex), password-gated permissioned sharing.
- The product design, the opinionated UX, and the marketing voice — not just the code.
- SvelteKit 5 · Convex · Tailwind 4 · deployed on Vercel.
A complete, billable product — auth to invoice to live client collaboration — shipped end-to-end by one builder.The tool I run my own client work through — how clients receive invoices and watch progress.
a tool, not a lifestyle · write. quit. ship. · for developers who'd rather ship than organize
Shipped Solo / Consumer Product
pondera.casa
Choose the right house — without getting lost along the way.
Choosing a property means drowning in tabs and gut feeling. pondera turns a pasted listing URL into a structured decision — real scraping and LLM extraction, not a chat box — then curates, compares, and ranks.
Next.js 16 · React 19 · Convex · OpenRouter (gpt-4o-mini)
Paste
Paste a link; AI extracts price, area, photos and a pros / cons / watch-outs card. No data entry. Score
Score each property on a checklist; portfolio stats update as you go. Compare
A side-by-side table with best value per criterion highlighted in gold. Decide
AI ranks the options and explains each position in plain language. You decide.
Real AI work — scraping, extraction, curation, ranking — wrapped in a polished consumer product and its marketing site, shipped end-to-end.Live and public at pondera.casa — real scraping and LLM extraction, not a demo.
Selected Work / Precision-Ag Platform · Web + Mobile
Flora — Santos Lab
Agronomists needed drone, satellite, and field data fused into something they could read on a map — and capture offline in the field. I built the React/TypeScript platform (Leaflet + Turf.js) and an offline-first React Native field app, and grew from developer into Tech Lead of five.




A web + mobile platform that put multi-source geospatial data in one place — and the case where I went from building to leading the build, developer to Tech Lead of 5.
Selected Work / Systems Behind the Screens
The systems users never see
HomeOptions' real engine was internal. For a call-center sales operation I owned a custom SvelteKit CRM wired into Twilio's call center, an AI-assisted call-handoff tool, and a Go/HTMX compliance & debt-settlement platform — the systems that don't screenshot well but run the business.
“Three internal systems for a call-center operation — CRM, AI call-handoff, and a compliance/debt-settlement platform — owned end-to-end.”
~15 agents lived in it 6+ hours a day, every day the call center ran.
Public-facing work



Back Matter / Built for the Love of It
When the work's done, I still build. A sampling of things made for the love of it — small games, starter templates, sprites and code, all mine.
Have a problem that needs an owner, not a committee?
Send me the messy version — I'll come back with where I'd start.
Felipe Afonso — Field Notes · A product team of one




















