Beyond Falkor

Client and product work, plus selected projects

The same habits outside the home lab: small, useful products with privacy designed in and plain status notes. Client names and people stay private.

Client and product work

Two client engagements and one product prototype, with names left out. Each reads problem, delivered, status and constraint.

  • Client work · built, awaiting deployment · Jul–Sep 2026

    An HR policy assistant, and an AI roadmap

    For an IT services and staffing firm

    Problem
    Staff needed trustworthy answers about HR policy, and personal HR questions had to reach a person, not an AI.
    Delivered
    An on-premises assistant that answers only from published policy and checks every citation, plus a phased AI roadmap.
    Status
    Built and tested; going live is the client's call.
    Constraint
    Chats are encrypted and deleted after 24 hours, and the local model is pinned so it can't change underneath the answers.
    What I built
    • Hybrid retrieval (Postgres full-text plus vector search) over a local model pinned by digest
    • Chats encrypted and deleted after 24 hours; every citation checked before it is shown
    • An 80-case acceptance set: 50 factual, 30 safety
    • A phased AI roadmap that ordered three products by risk, so an automated score can never reject a candidate
    • A recruiting-intelligence engine that records graded evidence instead of scores about people, with approved sources only and injection screening on every fetched page
    • RAG
    • pgvector
    • Local LLM
    • Evals
    • Next.js
    • Python
  • Client work

    A local-first CRM for a loan officer

    For a mortgage loan officer

    Problem
    A loan officer needed one place for the pipeline, referral partners, tasks and closing dates, with client data kept off the cloud.
    Delivered
    A CRM that runs entirely in the browser: a pipeline board, referral partners, templates and a closings calendar.
    Status
    A leaner rewrite replaced the original after the original's own audit found it not release-stable.
    Constraint
    No server, no account and no data leaving the laptop.
    What I built
    • A Kanban pipeline from long shot to past client, with referral partners in tiers
    • Email templates with merge fields, and a calendar of birthdays and closings
    • CSV import with column mapping; JSON backup and restore
    • Plain JavaScript with no runtime dependencies, and a one-click Windows installer
    • JavaScript
    • IndexedDB
    • Offline-first
    • Zero dependencies
  • Product prototype · working demo

    Classroom wishlists, with the research to match

    For teachers and parents

    Problem
    Teachers wanted a simple way for parents to chip in for classroom supplies, without putting anyone's contribution on display.
    Delivered
    Classroom wishlist pages and a teacher console, with checkout built and exercised in test mode.
    Status
    Working demo. A real-money pilot waits for a compliant payout model.
    Constraint
    Policy research found that direct payouts to teachers conflict with district policy and state gift limits.
    What I built
    • Privacy by design: the public page shows progress and a donor count, never goals, totals or amounts
    • Stripe Connect checkout and webhooks, built and exercised in test mode
    • Moderated comments, seven progress visuals, and a status page showing which integrations are live and which are stubbed
    • Next.js
    • tRPC
    • Prisma
    • Stripe Connect
    • Postgres

Selected projects

Built for the fun of it, with the same habits: privacy designed in, tests, and plain status notes.

  • CouchCred

    A party game that runs itself. Phones join by room code, picks lock in, and every call settles from the live sports feed, then AI, then a crowd vote, or it scores no points.

    • Real-time rooms over WebSockets
    • About 17,000 lines of TypeScript and 32 test files
    • Next.js
    • WebSockets
    • Prisma
    • SQLite
  • God's Eye View, wired up

    A 3D world-events globe built by joining two open-source apps behind one bridge. It starts them when you open the page, sleeps them when idle, adds 29 live public-data layers, runs summaries on the local model, and holds voice AI to a hard $2 budget.

    • Built on God's Eye View (MIT) and World Monitor (AGPL-3.0)
    • A bridge of about 9,000 lines with 24 test files
    • CesiumJS
    • Docker
    • Node.js
  • A face for the voice

    A 64×64 LED panel that cycles through information scenes, and lip-syncs when Falkor speaks.

    • One serialized device writer with priority leases
    • About 11,700 lines and 36 test files
    • Node.js
    • Hardware
    • Pixel art
  • Family Huddle

    A fantasy-football league designed for every age at the table: a live draft on one shared device, large-text modes and 44-pixel touch targets.

    • Hashed PINs and an audit log of manager overrides
    • Scoring from public sports data
    • Next.js
    • WebSockets
    • SQLite

Archive

Smaller and paused work.

  • Signal Deck

    A radio and podcast player with no runtime dependencies, covering about 58,000 stations, plus a dial that links out to public amateur-radio receivers.

    • About 3,000 lines and 14 test files
    • JavaScript
    • Audio
    • Zero dependencies
  • DreamForge

    A child describes a game in a sentence, and the system builds it in Roblox. It now produces a real game file from one sentence; making it playable and editable is the unfinished half.

    • 2,323 tests passing
    • Paused, and labeled honestly as not done
    • .NET
    • React
    • Luau

Also: a playoff salary-cap fantasy league with a lineup optimizer, a two-player pick'em with trading-card reveals, and a desktop prize wheel.

Esc