Things I’ve built.
A selection across twenty-plus years, grouped by what each one was for. Products are described by what they do, and each one opens into a short case study of how it works.
AI products
Funding-matching platform
Matches organizations to non-dilutive funding. RAG over heterogeneous documents, embedding-based matching, and predictive scoring with fairness calibration, all inside a bilingual client portal.
- Stack
- Next.js, Laravel, FastAPI, pgvector, GCP, AWS
- Scale
- 84,000+ users · $1B+ in opportunities · SOC 2 Type II
- Role
- Co-founder, CTO, architect
Streamed grant writer
An LLM content generator that streams output over SSE as it writes, protected by a fail-closed prompt-injection guard and grounded against eligibility rules.
- Stack
- Gemini, Node.js, SSE
- Scale
- Production, multi-tenant
- Role
- Designed and built
Autonomous scraping agent
An LLM agent that explores web pages it has never seen and returns structured funding records, with no per-site selectors to maintain.
- Stack
- Python, Gemini, Postgres
- Scale
- 3,000+ opportunities indexed
- Role
- Designed and built
Multi-provider LLM gateway
A provider-agnostic gateway routing requests across Gemini, Claude, and OpenAI with rate limiting and fallbacks, so switching models never needed a code change.
- Stack
- TypeScript, Node.js, Redis
- Scale
- Every LLM call on the platform
- Role
- Designed and built
Form-filling browser extension
A companion Chrome extension that fills funding applications by reconciling what is on screen with the DOM through hybrid vision matching, with subscriptions and credit metering.
- Stack
- NestJS, Bun, Stripe, computer vision
- Scale
- Tiered plans, usage-metered
- Role
- Architect and lead
On-device model distillation
Distilled models small enough to run privately in the browser over WebGPU, giving sub-second inference without sending data to a server.
- Stack
- PyTorch, WebGPU
- Scale
- Sub-second, on-device
- Role
- Research and build
Platforms & apps
Language-learning mobile app
A React Native app and Node.js backend for an EdTech platform, delivered by a small team I led while modernizing the legacy stack underneath it.
- Stack
- React Native, Node.js, Postgres, AWS
- Scale
- Multi-tenant SaaS
- Role
- Tech lead
Learning analytics pipeline
Self-hosted event ingestion and metrics for learning records, plus OAuth 2.0 single sign-on so client organizations authenticate straight into the platform.
- Stack
- Kafka, ClickHouse, OAuth 2.0
- Scale
- Per-learner event streams
- Role
- Designed and operated
Android streaming app
A streaming app with its own API, worker queue, and self-hosted delivery, from the Kotlin client to the Caddy edge it is served through.
- Stack
- Kotlin, FastAPI, Postgres, Redis, Docker
- Scale
- Self-hosted end to end
- Role
- Solo
Banking data sync
An automated data-sync service between Oracle and MySQL integrating with a core banking system, alongside a hosting migration to AWS.
- Stack
- Go, Oracle, MySQL, AWS
- Scale
- Web, mobile, and large-screen clients
- Role
- Senior engineer, led devs and DBAs
Artist distribution platform
A music-distribution platform for independent artists, one of four web properties I architected for a creative agency over seven years.
- Stack
- PHP, MySQL, AWS
- Scale
- Four platforms, one infrastructure
- Role
- CTO
Side projects
Vroom
An arcade driving game for my nephew, built in SceneKit with motion tuned to feel smooth in small hands.
- Stack
- Swift, SceneKit, iOS
- Scale
- One very demanding user
- Role
- Solo
This site
Hand-written HTML on a VPS I run, behind Caddy, with DNS set through the registrar’s API. The stack for the page is the stack I work in.
- Stack
- HTML, CSS, nginx, Caddy, Docker
- Scale
- One file per page, no framework
- Role
- Solo