Projects

Pick one to see it, play it, and read how it's tested. The ones marked live open in your browser, invite codes included.

Tap a skill to see the projects that used it. Hover a tag on a tile to see what it meant there.

live

Cur8

An LLM grounded by RAG over hand-curated crates of real recordings curates each playlist, with crate rules enforced in code. A two-tier eval harness scores routing, invented songs and rule leaks against 24 golden prompts.

  • RAGRAG · in Cur8Each request is grounded in hand-curated crates of real recordings: the model picks crates, and the songs come from them.
  • LLM EvaluationLLM Evaluation · in Cur8A two-tier harness: free deterministic checks on every change, then real model runs scored prompt by prompt.
  • Golden DatasetsGolden Datasets · in Cur824 golden prompts list the right crates, the crates that must never fire, and artists the rules must block or keep.
  • Hallucination MetricsHallucination Metrics · in Cur8Every suggested song is looked up in the catalog; any that can't be found is counted as invented.
  • GuardrailsGuardrails · in Cur8Crate rules are enforced in code, and the harness still counts how often the model tried to break them.
  • Model ComparisonModel Comparison · in Cur8The same golden set runs against models from more than one provider by changing one flag.
  • Data EnrichmentData Enrichment · in Cur8Songs carry MusicBrainz credits and Last.fm tags, and the harness checks the AI's tags against those credits.
  • Mobile-first QAMobile-first QA · in Cur8Designed for phones first, down to the sideways tape-deck player and the compact portrait player.
live

Ryōri Quest (料理クエスト)

Vite PWA with Supabase accounts and an invite gate checked on the server. Playwright plays whole dishes at phone and desktop sizes; Mochiyuko's voice is Kokoro TTS generated on a local GPU.

  • Game TestingGame Testing · in Ryōri QuestPlaywright plays a whole dish: chapters, unlocking, stars, XP, stamps and the victory screen.
  • E2E AutomationE2E Automation · in Ryōri QuestBrowser playthroughs run against the built game at phone and desktop sizes and fail on any page error.
  • Mobile-first QAMobile-first QA · in Ryōri QuestEvery step is checked to fit a 390px-wide phone with no sideways scrolling.
  • Access ControlAccess Control · in Ryōri QuestAn invite gate in server middleware with signed cookies; tests cover typed codes, one-tap links and which paths skip it.
  • Content ModerationContent Moderation · in Ryōri QuestDisplay names are tidied, length-checked and screened by a profanity filter before anyone else sees them.
  • Text-to-SpeechText-to-Speech · in Ryōri QuestMochiyuko's lines are Kokoro TTS generated on a local GPU, and a voice actor can replace any line.
  • Smoke TestingSmoke Testing · in Ryōri QuestAfter each deploy, a script checks from outside that APIs refuse visitors and a wrong code is rejected.
  • ObservabilityObservability · in Ryōri QuestGame analytics, players per invite code, and a live strip of who is playing, in an admin report.
live

Job Thing

Jailbroken Car Thing running Chromium 69, fed by a standard-library Python and SQLite server that pulls about 90 job boards hourly. 184 Python and Playwright tests run on every push.

  • Embedded LinuxEmbedded Linux · in Job ThingA jailbroken Spotify Car Thing runs Chromium 69 in kiosk mode on its 800×480 panel.
  • Hardware TestingHardware Testing · in Job ThingThe kiosk UI is tested the way it's used: at 800×480, driven by the dial and five buttons.
  • Performance ProfilingPerformance Profiling · in Job ThingProfiled on the device over Chrome DevTools: one dial detent went from 272 ms to 6 ms.
  • E2E AutomationE2E Automation · in Job Thing59 Playwright tests across the HTTP contract, the kiosk UI and the web demo, with a video of each.
  • API TestingAPI Testing · in Job ThingGreenhouse, Lever, Ashby and SmartRecruiters APIs are fetched hourly, and the server's HTTP contract has its own suite.
  • CI/CDCI/CD · in Job Thing184 tests run on every push in GitHub Actions, producing a report with traces, videos and coverage.
  • Ranking & ClassificationRanking & Classification · in Job ThingQA roles are told apart by include and exclude rules, then scored 0–100 by named, explainable rules.
  • AI GuardrailsAI Guardrails · in Job ThingApply with Claude checks the tailored resume against the master resume in code, and stops before Submit.
The Ask the Library reader showing King Lear from Project Gutenberg in sepia, with a VocabLens panel on the left defining archaic words and a StudyBuddy panel on the right giving chapter-grounded commentary.

Ask the Library

RAG over 7.5M passages from 50,700 books: Elasticsearch kNN on local embeddings, FastAPI, and streamed answers from Ollama. Tested by a deterministic offline Playwright suite and a live smoke suite.

  • RAGRAG · in Ask the LibraryAnswers are grounded in retrieved passages and stream back with citations from self-hosted models.
  • Vector SearchVector Search · in Ask the LibraryElasticsearch kNN over 7.5M passages, with cold-cache latency cut from 17 s to 0.2 s.
  • EmbeddingsEmbeddings · in Ask the LibraryPassage embeddings are computed locally for 50,700 books, with no cloud API.
  • Self-hosted LLMsSelf-hosted LLMs · in Ask the LibraryOllama serves 14B, 3B and 1B models across a two-node home lab.
  • Agentic PipelineAgentic Pipeline · in Ask the LibraryAn ingestion agent gates new books with OCR heuristics, scan-boilerplate detection and an LLM sniff test.
  • Computer VisionComputer Vision · in Ask the LibraryCover scans are scored by Laplacian variance and a vision model, then regenerated with Stable Diffusion.
  • E2E AutomationE2E Automation · in Ask the LibraryEleven Playwright specs, made deterministic by serving fixtures at the network layer.
  • Smoke TestingSmoke Testing · in Ask the LibraryA live suite against real infrastructure caught GPU contention starving search before users did.
Contract

Fare

Native Swift driver app, a web dispatch dashboard and a TypeScript middleware over Firebase where the pricing and dispatch rules live. Client work, in development.

  • Mobile (iOS)Mobile (iOS) · in FareThe driver app is native Swift on iOS.
  • Backend MiddlewareBackend Middleware · in FareA TypeScript service between the apps and Firebase, where the pricing and dispatch rules live.
  • Dispatch SystemsDispatch Systems · in FareA web dashboard where a dispatcher assigns and tracks rides.
  • Contract DeliveryContract Delivery · in FareClient work for Fare Technologies through SLVRLeaf, with a real deadline; still in development.

Tiếng Việt Learning Tools

SwiftUI app with the alphabet recorded in three regional dialects and pronunciation graded by Apple's on-device speech recognition. Game logic sits in a view model under XCTest.

  • Mobile (iOS)Mobile (iOS) · in Tiếng Việt Learning ToolsA native SwiftUI app for iPhone.
  • Speech RecognitionSpeech Recognition · in Tiếng Việt Learning ToolsPronunciation is graded with Apple's on-device speech recognition.
  • Unit TestingUnit Testing · in Tiếng Việt Learning ToolsThe game logic lives in a view model so XCTest can cover it.
  • Dialect AudioDialect Audio · in Tiếng Việt Learning ToolsThe alphabet is recorded three times, North, Central (Huế) and South, by a different native speaker each.
Internal tool

Sorceror

Chrome extension overlay on Sorcero's product: one-click auth tokens, project internals the UI hid, and test-project management, cached so it stays instant in every environment.

  • Internal ToolingInternal Tooling · in SorcerorBuilt in-house for Sorcero's quality engineers, who used it daily.
  • Chrome ExtensionChrome Extension · in SorcerorAn overlay on the product page itself, so the numbers testers needed sat right next to the UI.
  • AuthAuth · in SorcerorGetting an auth token went from a manual chore to one click to the clipboard.
  • CachingCaching · in SorcerorResponses are cached so the overlay stays instant.
  • Developer ExperienceDeveloper Experience · in SorcerorIt removed the setup work around regression testing that had nothing to do with testing.
Internal tool

Sorcero: Tesseract

Three.js and D3 map of live microservices, each wired to the Playwright specs that cover it. Runs start from the map, and disaster-recovery results are compared across two regions.

  • MicroservicesMicroservices · in Sorcero: TesseractA live map of the active microservices, each wired to the specs that cover it.
  • VisualizationVisualization · in Sorcero: TesseractBuilt with Three.js and D3, so coverage and health read spatially instead of in a terminal.
  • Test OrchestrationTest Orchestration · in Sorcero: TesseractPlaywright runs start from the map instead of the command line.
  • Disaster RecoveryDisaster Recovery · in Sorcero: TesseractDisaster-recovery drill results are compared side by side across two regions.
  • Multi-regionMulti-region · in Sorcero: TesseractBoth regions' runs are shown together, with history kept from each run's output.