Projects
Shipped artifacts. Not experiments.
A private notes app that keeps everything encrypted on the device: Argon2id and XChaCha20-Poly1305 envelope encryption, on-device voice transcription through whisper.cpp, and one Flutter codebase shipped to the App Store, Google Play and the Mac App Store.
FlutterDartArgon2idXChaCha20-Poly1305whisper.cppDart FFIGitHub Actions
A rapidly evolving local-first autonomous agent platform built around Ollama: an AI wingman with approval-gated tools, persistent memory, multiple interfaces, scheduled automation, and a growing plugin ecosystem.
Node.jsOllamaSlack BoltServer-Sent Eventswhisper.cppVitestPlugin Architecture
A local Apple Silicon text-to-speech studio that runs open Hugging Face models through MLX, with a Gradio UI, FastAPI endpoints, model-cache controls, and performance-aware preset guidance.
PythonMLXMLX AudioHugging FaceGradioFastAPIApple Siliconuv
A neon, simultaneous turn-based strategy game built for Gamedev.js Jam 2026. Two robots. One grid. Queue your moves, then watch them execute at the same time.
Phaser 4TypeScriptViteWeb Audio APIWavedash
A production-style mobile app for SPFL standings, including an iOS WidgetKit experience and a new Android release, backed by a resilient Cloudflare Worker with multi-source ingestion and layered caching.
SwiftSwiftUIWidgetKitAppIntentsTypeScriptCloudflare WorkersCloudflare KVSwift Package Manager
A full modernization of my 2012 PhoneGap game into a maintainable Godot 4.6 mobile release with state-driven gameplay, resilient input handling, and repeatable iOS/Android shipping workflows.
Godot 4.6GDScriptiOSAndroidXcodeProcedural RenderingData-Driven BalancingMobile QA