Solutions Engineer at Datasembly, based in Canada. Previously at Amazon Prime Video.
I work where business questions meet Snowflake, SQL and analytics delivery that has to hold up in production. Outside of that, I ship small native apps and full-stack tools end to end: from the problem to production, not just the data layer.
I build practical tools that make messy data, business processes, and AI systems easier to understand and trust. The projects below show how I define problems, design workflows, test failure cases, and turn ideas into working results.
Some projects are generalized or recreated with synthetic data to respect employer and client confidentiality. AI coding tools may accelerate implementation; I remain responsible for the problem definition, architecture, testing, review, and final decisions.
| RepTrack β | iOS workout log. SwiftUI and SwiftData, local-first, no account wall. Built solo and taken through App Store review. Live on the App Store. |
| My Take on Jev β | Its open rivals, measured. An independent test of the new open "decision models" on support-ticket routing: 250 hand-labelled requests, one shared test harness, a held-out set scored once. A 2B decision model beat a 7B general model by 16 points, with the most honest confidence. Code and every run. Technical report. |
| AI Digital Double β | A 3D model of my own head, built by directing Claude Code to drive Blender from phone photos and a 13-second video. Its eyes follow your cursor. Every step, including the failures. Live demo. |
| Sitescout β | Chrome extension: paste stock tickers and a side panel reads each Yahoo Finance page into cards and one CSV. TypeScript, React, Manifest V3. Code and case study. |
| Integration-in-a-box β | Two made-up companies, the connector between them, real logins (Keycloak, OAuth 2.0), signed webhooks, and ten deliberate failures with a runbook for each. Runs with Docker. Code, case study and runbook. |
| Analytics assistant: rules vs AI β | A rule-based brain and a local AI model (Ollama) answer the same 30 questions about a year of grocery sales through the same six MCP tools. Both scored. Code and results. |
| Customer data delivery β | Messy weekly sales files from several pharmacies become one clean, tested table, delivered only if every check passes. DuckDB, dbt, Dagster. Code and runbook. |
| Catalogue checker β | Which grocery products are filed in the wrong category? Three checkers, from keyword match to a large zero-shot model, tested on Open Food Facts with 50 planted errors. Code and results. |
| Haloscript β | A Mac, iPad and iPhone app for writing novels, with an infinite whiteboard beside the manuscript: corkboard planning, a Story Bible, and iCloud sync. Heading to the App Store. |
I build internal tools and agent-facing infrastructure with AI coding agents (Claude Code, Cursor) and the Model Context Protocol: MCP servers for IDE agents, and Chrome (MV3) side-panel extensions for retail data operations. That work lives in private repos, so the case studies are written up generically, and the two public repos below recreate the patterns with synthetic data.
| Case studies β | MCP server for analytics context, an in-scope checker, the Sidecar Chrome extension, a Next.js health dashboard and a category-copilot prototype, each with a flow diagram. |
| mcp-analytics-stub β | Minimal TypeScript MCP server: a resolver tool and a context tool returning synthetic JSON, with schema validation and tests. |
| mv3-sidepanel-starter β | Starter Chrome MV3 side panel: paste IDs, apply mock rules, download a CSV. Rules are a pure function, unit-tested with Node. |
| Experiments β | A 3D solar system with real orbital mechanics, a terminal that answers as me, and a WebGL star field, all built with an AI pair programmer. |
A few of my repos are private, including RepTrack. If something here looks interesting and you'd like a closer look at the code, reach out and I'm glad to walk you through it:


