Felipe AfonsoIssue 01

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 complete internal platform for a venture firm, plus two commercial products of my own — 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.

Niterra Ventures portfolio dashboard — invested capital, exit-value range and average TVPI above a quarterly revenue trend, recent movers and a projected exit timeline
Portfolio dashboard — invested capital, exit-value range and TVPI up top; a quarterly revenue trend, recent movers and a projected exit timeline below.
Niterra exit-valuation model showing enterprise value and MOIC across low, mid and high scenarios beside a performance-ratio panel
Exit modeling — enterprise value and MOIC across low / mid / high scenarios, with a live performance-ratio panel.

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.

Niterra companies list — every portfolio company with its rounds, investment stages, carry value and ownership
Companies — every holding with its rounds, carry value, ownership and major rights.
Niterra per-company financial detail with revenue and net-income charts versus plan and liquidity ratios
Per-company detail — revenue, net income and cash generation vs plan, with quarter-over-quarter growth, runway and per-metric variance.

Cap tables & deal flow

Niterra editable cap table — rounds, per-investor ownership and fully-diluted shares auto-computed from investments
Editable cap table — rounds, per-investor ownership and fully-diluted shares, auto-computed from the underlying investments.
Niterra deal funnel tracking conversion across the investment pipeline stages
Deal funnel — conversion from intake to investment across the pipeline, with drop and long-term-follow lanes.

Spend & forecasting

Niterra expenditure dashboard with spend versus budget broken down by domain
Expenditure tracking — spend vs budget by domain, with a paid / forecasted split.
Niterra forecast-accuracy report comparing forecasted and actual spend per engagement
Forecast accuracy — forecasted vs actual spend per engagement, scored by variance.

Board decks & reporting

Niterra presentation builder showing investment composition, a frozen portfolio snapshot and per-company sections, exported to PowerPoint
Presentation builder — composition, frozen snapshots and per-company sections, exported to PPTX. The portfolio deck, in seconds.
Niterra financial reports — a profit-and-loss table across quarters with balance-sheet, cash-flow and KPI tabs
Financial reports — P&L, balance sheet, cash-flow and KPI tabs, per company.
Venture Lab, Niterra GroupVenture Lab · Niterra Group

Screens from a public demo seeded with fictional data — no real portfolio data shown.

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.
The board freelancers live in: markdown tasks, running timer, status filters. “manage work, not a workspace.”
Time tracking with live running timers — part of the same tool, not a second app. “tasks. time. invoices.”
jsPDF invoice generation — billing built into the same tool, not bolted on.
Password-protected client boards with live chat (Convex) — permissioned sharing, real-time.
What the client sees: a password-unlocked board with live chat — the sharing surface, from the other side.
REC00:48:21:stop

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)

  1. Paste

    Paste a link; AI extracts price, area, photos and a pros / cons / watch-outs card. No data entry.
  2. Score

    Score each property on a checklist; portfolio stats update as you go.
  3. Compare

    A side-by-side table with best value per criterion highlighted in gold.
  4. 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.

app.flora
Flora interactive map fusing drone, satellite and field data with geospatial analysis
Drone, satellite and field data on one interactive map (Leaflet + Turf.js geospatial analysis).
Flora offline-first React Native field-collection app showing a selected farm
Offline-first React Native field app — the same platform, collected where there's no signal.
app.flora
Flora analytics dashboard with custom charts turning geospatial data into decisions
Analytics dashboards and custom charts turning raw geospatial data into decisions.
app.flora
Flora filtered map with analysis layers
Filtered map + analysis layers — 100+ farms and thousands of hectares, used by ~20 agronomists.

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

homeoptions.com
HomeOptions public user portal rebuilt on Next.js server-side rendering
HomeOptions portal: rebuilt React SPA → Next.js SSR for performance and SEO — funnels that processed 50k+ leads.
homeoptions.com/blog
HomeOptions blog and content surface built on server-side rendering
Content/blog on the same SSR foundation — SEO-driven entry points feeding the funnel.
liftup
Liftup public portal and ad-campaign landing page
Liftup portals & ad-campaign landing pages — an MVP built to pitch for seed funding.

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.

Stupid Spider — a game built ground-up in Rust + Bevy: sprites, original music, and code, all mine.
Go + HTMX starter template — shared for other builders.
Sudokouija — a horror sudoku built in LÖVE for Scream Jam 2025: solve the board before the timer runs out. Sprites and code by hand, no generative AI.
HTMX starter for the Gleam functional language — range across stacks.
~9 yrs shipping softwarefull-stack across many stacksM.Sc. CS — cross-platform dev researchformer Tech Lead of 5solo delivery, end-to-end

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