ERNESTO—SOFTWARE.
EN ES
01 Engagements Tampa Bay, FL

The engagements

Six engagements. The first three are the same system in three businesses. The rest is data work, open source, and products of my own.

If your business runs on members, it probably runs through you. Signups arrive in your messages. Payments come three different ways. Who still owes you lives in your head. That works until it does not. Missed payments. Double booked slots. An hour every night checking.

The fix has the same shape every time. Members sign up themselves. Members pay through the system. You get one screen that shows the whole thing and lets you change any part of it.

I have built that three times now, in three different businesses. The work is below. The references are word for word, including the two slots still sitting empty.

listings

No. Engagement Line of work Status Outcome
01 The pickleball league Line of work: Community league · tournaments Status: Live Outcome: 73 members in six weeks
02 The Wonder Club Line of work: Experiences · bookings · waivers Status: Live Outcome: Built and live, first experience on sale
03 BLF Transportation Line of work: Trucking · yard operations Status: Live Outcome: 5-10 hrs saved weekly
04 DailyMoneyball Line of work: Own product · sports data Status: Live Outcome: 64% high-tier win rate
05 clerk-auth Line of work: Open source · authentication Status: Shipped Outcome: Published to npm and PyPI

Briefs

04 Live

DailyMoneyball

Own product · sports data

Sports prediction product built end to end: Django and PostgreSQL behind a Svelte and htmx front end. Confidence tiering with an explicit skip class, a shadow model scored against the live one, and a daily record posted in public.

Django · PostgreSQL · Svelte · htmx · Cloudflare

05 Shipped

clerk-auth

Open source · authentication

Full stack authentication library that plugs Clerk into Django REST Framework and Next.js. JWT verification, role based permissions, multi tenancy, and type safe API clients.

Python · Django · Next.js · TypeScript · JWT

DailyMoneyball and clerk-auth get three lines each, because the work was about three lines long.

What I build

  1. 01

    Work a machine already does

    Someone retypes what someone else already typed. Invoices get chased by hand. At BLF that was five to ten hours a week, every week, until the software took it over.

  2. 02

    One tool instead of five

    Signups land in your messages. Payments arrive three different ways. Copy and paste holds the middle together, right up until somebody forgets a step.

  3. 03

    One screen instead of a guess

    The numbers already exist. They sit scattered where nobody looks twice. Neftali opens one screen in the morning and the whole yard is on it.

From the archive

Earlier work

Brewbook

Hackathon · city guide · Storyblok Hackathon 2025

Full stack city guide built with Next.js 15, Storyblok CMS and Algolia search. Search with synonyms, typo tolerance and composite filtering. Service oriented backend with dependency injection.

Next.js 15 · React 19 · TypeScript · Storyblok · Algolia · Leaflet

Lithic Website

Marketing site · Portland, OR

Marketing site designed and built from scratch to show Lithic's brand, on a fast Gatsby static pipeline, deployed on Netlify.

Gatsby · CSS · Netlify

Thesis Agency Website

Marketing site · Portland, OR

Responsive marketing site for Thesis agency, built with React and jQuery, with media served from AWS S3.

React · jQuery · AWS S3

Brewbook was a hackathon. DailyMoneyball is mine. Nobody paid for either.

How an engagement runs

  1. 01

    Listen

    First I sit and learn how the business already runs, including the parts that have been done the same way for years because they work. Nothing gets written yet.

  2. 02

    Build

    Short cycles. You see the real thing every week, on a link you can open, and you can change your mind while it is still cheap to change.

  3. 03

    Grow

    Launch day is the middle, not the end. I keep it running afterwards, and the next phase gets built when the business is ready to pay for it.

The first phase is usually smaller than people expect. That is deliberate: it earns before the second one starts.

How it is paid

  1. 01

    Everything splits over ten months. The build, and anything we add after it.

  2. 02

    Phases run in the order that makes you money first, not the order I find interesting.

  3. 03

    You get a real number on the call, and it does not move afterward.

Start a conversation

Six here, and three of them are the same machine.