I spent a decade building internet businesses. Now I’m learning to turn those lessons into software.

Current work: Python, evals, agents and automation. I care most about the rules, handoffs and failure cases that show up after the demo.

4 exitsinternet businesses
10+ yearsbuilding online

Selected work

01

Finding signal in 340 public posts

I screened 340 public posts for operational buying intent. Ten went to manual review. The useful work was defining the rejection rules, then checking where those rules failed.

Synthetic examples
Retain

“Our payroll provider failed again — looking at alternatives.”

Reject

“5 payroll tips for founders.”

Review

“We missed payroll again.”

One correction
Input

“We missed payroll again.”

First call

Keep.

Problem

Pain alone doesn’t explain the cause.

Rule now

Retain only with evidence of a broken process/provider, switching intent or a handoff. Otherwise: review.

In progress

Next: publish the script, labeled test set and error analysis.

02

Integration retirement check

A replacement can work while the old integration is still carrying production traffic. This fixture makes that dependency explicit.

Open the fixture ↓
Working fixture

Approval, ownership, migration verification, residual dependency and a security override.

03

Eval harness

Freeze the behavior. Hide the answers. Score outside the prompt. Re-run when the system changes.

In progress

Fixtures, rubrics, regression checks and deterministic evaluation.

Integration retirement check

Can the old integration be removed without breaking the workflow?

Conditions

Assumption: a confirmed incident can override the normal retirement sequence in this toy policy.

Decision: Retire. The normal retirement checks pass.

DecisionRetire

The normal retirement checks pass.

Business workflow
Old integrationunused
New integrationverified
✓Approvedchange control
✓Owner assignedreplacement ownership
✓New path verifiedmigration check
✓Old path unuseddependency check
✓No incident overridenormal sequence
Decision record
decision=retire
approved=true
replacement_owner=true
migration_verified=true
old_dependency=false
confirmed_old_integration_incident=false

How I got here

Search businesses

Demand, distribution and dependence on platforms I didn’t control.

Operations

Ownership, handoffs and the cost of small exceptions.

Software

State, rules and tests — written down instead of kept in someone’s head.

Previous chapter: SEO & growth

I spent years building, ranking and selling content businesses, then working on growth and operations for startups.

See the SEO portfolio ↗

What I’m working on

September 2026

Python

APIs, tests, state and failure handling.

Eval fixtures

Blind cases, explicit rubrics and regression checks.

Agent environments

Tools, state and constraints — then observing what actually happens.