I find the data hiding inside problems other people treat as business-as-usual.
Eric Hall

15+ years building products at the intersection of knowledge, trust, and technology.

The thread connecting twenty years of work is not a technology or an industry — it is a question: how do people find what they need to know, and what gets in the way? From peer review to predictive analytics to location-based discovery, every project has been an attempt to close that gap. The tools change. The problem doesn't.

FIG. 01 Is This A Product? — conversational product validation diagnostic
Is This A Product?

A free conversational diagnostic that runs a product idea through six evidence-based layers — problem legitimacy, customer specificity, willingness to pay, artifact analysis, market signal, and verdict — then returns a gap scorecard grounded in published research from Levitt, Blank, Fitzpatrick, Cagan, and others. No accounts, no email capture, no opinions: every finding is traceable to a source.

What it taught me: Probabilistic systems resist deterministic instructions — never architect around a model's self-reporting. Scorecard signals rendered from result JSON beat anything the model emits mid-conversation. And a test harness only earns its keep if it simulates realistic user flow; firing pre-scripted turns blindly just tells you the happy path works.
Claude API Conversational UX Node.js Cloudflare Express PM2
FIG. 02 Heddlepin pin detail — arrival-unlock teaser over a Boston map
Heddlepin

Community exploration platform for obsessives—people who care too much about the right things and want to find their people in the real world. Pinned locations unlock full lore and community marks only when you physically show up. Built on Node.js, PostgreSQL + PostGIS, MapLibre, and Cloudflare.

What it taught me: Geographic UX is deceptively hard. The "arrive and unlock" mechanic required rethinking every assumption about how users interact with map interfaces—and forced me to feel every friction point my engineers warned me about.
Node.js PostgreSQL PostGIS MapLibre PWA Cloudflare
FIG. 03 Bracket Battle hero banner — 2026 NCAA Division I Men's Lacrosse Championship bracket tracker
Bracket Battle

Single-elimination bracket tracker for the 2026 NCAA Men's Lacrosse tournament. 16 teams, 15 picks, one champion. Deployed as a static site—zero backend, zero dependencies, zero budget.

Refreshed each year during NCAA Lacrosse championship season (2 weeks). Off-season between refreshes.

What it taught me: Constraints are a gift. Building with no server forced creative thinking about state, persistence, and UX that a "just add a database" approach would have skipped entirely.
Vanilla JS Static Site GitHub Pages
FIG. 04
Melee

Melee is a social prediction platform for private friend groups—pick brackets, award-show ballots, or any structured event, then watch picks, trash talk, and the leaderboard update in real time. It wasn't designed, it was discovered: a one-off NCAA lacrosse bracket app revealed that the social layer—pick visibility, chatter, leaderboard transparency—drives more engagement than the event itself. AI-assisted event creation now lets a host scaffold any competition from a plain-English description in minutes.

What it taught me: The accidental beta taught me more than the roadmap did. A throwaway lacrosse bracket for friends revealed that the real product was the social layer around the picks, not the bracket itself—and writing a full ontology before generalizing surfaced assumptions no user interview would have.
AI Event Creation Schema Design PostgreSQL Supabase
Sabo
Ongoing PAC experiment.
Geolocation & location-based services
Ontologies & schema design
Platform design & architecture
AI agent building and training
AI tool orchestration
Bootstrapping & solo shipping
Market research & customer discovery
Financial feasibility analysis
Competitor analysis
Mobile app design
Deployment & DevOps
Testing & QA
Product management fundamentals
Conversational funnel architecture
LLM prompt engineering & limits

Craft

  • Product operating model (SVPG)
  • AI / LLM product development
  • Agentic workflow design
  • Data infrastructure & governance
  • BI & analytics platforms

What I build with

  • Node.js, PostgreSQL, PostGIS
  • Claude API, agentic pipelines
  • MapLibre, Cloudflare, Hetzner
  • Vanilla JS, PWA patterns
Claude Desktop & MistralBrainstorming
Claude CodeBuilding
ForgejoSource control
SupabaseDatabase
HetznerServer
CloudflareCDN
VS CodeTroubleshooting & queries
SpeckitRequirements & dependency tracking
Marty Cagan
Jeanne Liedtka & Tim Ogilvie
Itamar Gilad
James Kouzes & Barry Posner