DEV TOOLSPrompt VaultFree AI prompt manager (Chrome extension)A free Chrome extension that saves, organizes, and one-click inserts AI prompts into ChatGPT, Claude, Gemini and more. I designed and shipped the whole thing — serverless, private, and reliable across nine different AI chat sites.JavaScriptChrome MV3Vitechrome.storage.syncRead case study9 supported AI chat sites
TextquillOn-device OCR + offline grammar checker (Chrome extension)A free Chrome extension that pulls editable text out of any image, screenshot, PDF, or screen region — then proofreads, translates, and rewrites it, all without a server. V2 turned an OCR tool into a full local text pipeline: four WebAssembly models (OCR, grammar, translation, Chrome's built-in AI) running on the user's own hardware, 38 languages, and an always-on grammar checker that never uploads a draft. Lives at textquill.app.JavaScriptChrome MV3WebAssemblyonnxruntime-webChrome built-in AIRead case study38 OCR languages
SPEECH AISelf-hosted speech-to-textSpeech recognition engine for a low-resource languageVoice messages were reaching an AI assistant as an empty placeholder, because no affordable speech API handled the language well. I fine-tuned an open-source recognition model on a free GPU and shipped it as a self-hosted API on hardware that was already paid for: word error rate 0.808 to 0.379, and the wrong-alphabet failure eliminated.PythonPyTorchONNX RuntimeFastAPIDockerRead case study0.808 → 0.379 word error rate, same held-out set
TELEPHONYKrispCallCloud telephony SaaS for high-growth teamsA cloud phone system where the call has to connect every time. The work: a real-time React/GraphQL interface over a WebRTC voice stack that stays responsive while live calls, queues, and presence update underneath it.ReactTypeScriptGraphQLWebRTCGCPRead case study100+ countries · live numbers
AI / MEDIASparkTalesAI storytelling SaaS for parents & educatorsAn AI product that turns a prompt into an illustrated, age-appropriate story. I built the Next.js app and the LLM generation pipeline behind it, engineered for safe, consistent output and a generation wait that reads as intentional rather than broken.Next.jsTypeScriptLLMsNodeGCPRead case studyVertex AI Gemini generation pipeline
LOGISTICSKeelspotCoastal-shipping marketplace platformA platform connecting cargo owners with coastal-shipping capacity. I built the Next.js marketplace, including the matching, quoting, and booking flows that turn a fragmented, spreadsheet-driven process into something operators actually use.Next.jsTypeScriptTailwindNodeRead case studyWorld-1st short-sea marketplace
PLATFORMWebhook flood controlsIngest hardening for a multi-tenant CRM (client engagement)A partner platform's replay loop delivered 487,195 events into a CRM's webhook endpoint in eleven hours and pinned the box at 99% CPU. I traced it a week after the fact through a session-manager shell, found that all three existing protections were structurally incapable of catching it, and built the ingest budget that closes the class of failure rather than the instance.Ruby on RailsPostgreSQLGoodJobAWS SSMDockerRead case study487,195 events in 11 hours