Portfolio
Welcome to my interactive portfolio of work. I design operational workflows, lead QA at scale in AI post-training environments, and build specialized browser tooling to automate research and validation. Explore my project case studies below and launch their live simulators.
Froyo Flight Extension
Background
On a large-scale audio transcription project at Alignerr, contributors were required to accurately transcribe aviation communications containing specialised identifiers — aircraft callsigns, navigational fix names, route waypoints, and aircraft types. This information was dense and required active research to verify correctly.
The Problem
Contributors skipped verification due to speed pressure or guessing from audio, leading to systemic transcription errors. Manual research was slow, requiring multiple tabs and lookup sources.
What I Built
I built a Chrome extension that injected a unified research panel directly into the transcription UI, resolving airport/fix names from FAA CIFP databases and decoding aircraft registration details dynamically.
Impact
Saved ~2 minutes per row, reached 997 peak active users, and resolved an entire error category across the team.
Launch Froyo as a floating extension panel overlay on this page! You can drag and resize it anywhere, minimize it, or browse the four panels (Route, Aircraft, History, Analysis) — each pre-populated with a real FlightAware snapshot for N528U.
Second Ear (ATC Search & Audit Tool)
Background
As Team Lead overseeing a ~1,000-person annotation team on an audio transcription project, I audited contributor transcriptions to ensure training data met model standards.
The Problem
Auditing was restricted to the slow default platform UI, limiting audits to 10–15 rows. Auditing feedback was delivered in text, which made it hard to analyze patterns.
What I Built
I built an NDJSON-based audit viewer. Auditors could upload candidate data, edit transcriptions inline with a visual character diff, rate issues on a severity scale, and export audit sheets directly to PDF.
Impact
Audit capacity doubled (25–30 rows/session). Feedback richness directly enabled a structured improvement pathway policy instead of simple bans.
Operational Scope Analysis
Background
When the project expanded from US aviation audio to international datasets, workflow complexity increased. I was asked to document the operational impact to support client budgeting decisions.
What I Documented
I produced an operational analysis exposing international aviation friction across chart accessibility, licensing costs, linguistic boundaries, and transponder-less flight tracking limitations.
Outcome
While the budget increase was declined, the analysis successfully convinced the client to withdraw international files and focus on clean US datasets, effectively resolving the issues.
Interactive Cost & Operational Friction Board
AIP Charts Directory
Background
Reference approach/departure charts are published separately by each country's aviation authority. Navigating foreign portals created a significant time burden during reviews.
The Problem
Portals used different naming structures, complex layouts, and nested PDF indexes. Finding specific procedures was a repetitive, multilingual navigation bottleneck.
What I Built
- Fuzzy Chart Lookup: Fast Fuse.js indexed search to organize and instantly locate nested or inconsistently structured aeronautical chart files from various country authorities.
- Salutation Search Index: Compiled a catalog of time-of-day greetings, pilot handoffs, and localized salutations heard in international transmissions. Generated natural-sounding TTS audio clips using advanced neural speech models and built a fuzzy search utility to help transcribers match and recognize foreign dialects/aviation phraseology.
Impact
Reduced chart lookups from minutes to seconds, resolving the major charting friction points identified in the Operational Scope Analysis.
Interact with the live AIP Charts Directory. Search for Canadian, Dutch, Swiss, or Irish approach plates and test the integrated PDF viewer tools.
ripp13
A semantic word association game powered by a client-side vector engine. Navigate from a start word to a target word by choosing semantic neighbors. Play in new tab ↗
Under the Hood
Client-Side Vector Engine
Ripple performs real-time cosine similarity calculations directly in the browser. It loads a 19MB binary float array of pre-normalized 100-dimensional GloVe word embeddings, computing dot products on Float32 arrays for instant semantic nearest-neighbor search without server lag.
Python Data Preparation
The vocabulary is built using Python scripts that cross-reference NLTK databases and custom allowlists to filter out proper nouns and common names, maintaining a clean 275k word list while protecting playable homonyms.
LLM Integration (Groq API)
When sharing a winning path, players can generate a "path poem". A Cloudflare Worker sends the deterministic game hash and path to a Groq LLM endpoint, which synthesizes a blank-verse poem incorporating the exact words from the player's path.
⁂
"I'd rather chase orchids than write prose, even in adaptations, for I am a poet, and prose is for toads, not mammals like me."