My Best Creations

Designing and building products end to end for two decades and counting. Each one opens into a short case study of how it works.

Top matches card showing 11 opportunities and $850,000 CAD in potential funding

Funding-matching platform

Matches organizations to non-dilutive funding. It reads thousands of mixed-format documents with retrieval-augmented generation, matches on embeddings, and predicts fit with a fairness-calibrated model, all inside a bilingual client portal.

White-label program dashboard with matched opportunities, courses, and a member map

Funding-program platform

A white-label platform for funding programs and accelerators. Each program gets application tracking with AI fit scores, a mapped member community, courses and events, and credits and subscriptions, all under its own brand and domain.

Smart Fill panel next to a government funding application

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.

{ }

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.

⇄

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.

Browser extension offering to autofill a funding application form

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.

◔

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.

Tablet showing the AI tutor chat inside a lesson, explaining the present simple

AI language tutor

An AI tutor built into an English-language curriculum and its mobile app. It answers questions inside the lesson the learner is on, corrects and explains at their level, and gives them a safe place to practise conversation.

Speaking practice screen with audio playback and record button

Self-hosted speech assessment

Replaced a licensed pronunciation-scoring service with one we own. Open-source Whisper runs on a GPU server I set up, and our own scoring algorithm keeps learners’ scores fair and comparable with the old ones.

App home screen with continue-learning card and next lessons

Language-learning mobile app

A React Native app for iOS and Android that puts a full English curriculum on learners’ phones. Adaptive lessons, video-led units, speaking and vocabulary practice, an AI tutor, and progress that syncs in real time with the institution’s learning management system.

PostHog product analytics dashboard with a trend chart and a pie chart

Learning analytics pipeline

A self-hosted PostHog deployment for learning-record analytics. Events flow through Kafka into ClickHouse and out to dashboards client organizations read directly, and OAuth 2.0 single sign-on lets their staff log straight in.

▶

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.

⇅

Banking data sync

An automated data-sync service between Oracle and MySQL integrating with a core banking system, alongside a hosting migration to AWS.

♪

Artist distribution platform

A music-distribution platform for independent artists, one of four web properties I architected for a creative agency over seven years.

🚗

Vroom

An arcade driving game for my nephew, built in SceneKit with motion tuned to feel smooth in small hands.

Grant writer profile and client list

Grant-writer marketplace

A marketplace that matches independent grant writers with organizations that need help applying, with client management, work samples, and real-time alerts for new opportunities.