Consulting
ConsultingAdvisory
While I look for my next full-time role, I take on a limited number of consulting engagements: full-stack builds, cloud and edge architecture, mobile apps, and technical advisory, with a growing amount of AI integration work. Clients have ranged from healthcare to auto sales, and I'm open to more.
Booray Cards
iOSAndroidWeb
A full cross-platform app (iOS, Android, and web) for playing and scoring the card game Booray. It's local-first: an on-device SQLite database keeps things instant offline and syncs to a Cloudflare Workers API. It handles user accounts and tracks the pot and each round as you play.
Built withReact Native · Expo · TypeScript · Drizzle ORM · SQLite · NativeWind · Clerk · Cloudflare Workers · Hono
Winona Lake Conditions
Web appWeather
A fully server-rendered Cloudflare Worker that turns live Open-Meteo forecasts into go / marginal / no-go scores for lake sports (eFoil, wakesurf, wakeboard, and water ski) on Winona Lake. It weighs wind, gusts, rain, and daylight, and a scheduled job keeps the forecast cache warm.
Built withCloudflare Workers · Hono · TypeScript · Workers KV · Cron Triggers · Open-Meteo API
Winona Lake Timelapses
AutomationVideo
An automated pipeline that captures the lake camera's RTSP stream and renders daily sunrise, sunset, and full-day timelapses on a schedule, then publishes them to a Cloudflare R2-backed gallery, with hundreds of clips archived and growing every day.
Built withNode.js · FFmpeg · RTSP · Docker · Cron · Cloudflare R2 · Cloudflare Workers
Winona Lake, 2025
Computational photographyData viz
A computational-photography recap of a full year of sky over Winona Lake. Roughly two million frames turned into sun-locked timelapses, star trails, keograms, and 'weather-removed' median videos.
Built withPython · OpenCV · pvlib · PyTorch · FFmpeg · Astro · Cloudflare Workers
Wakeless
iOSData viz
An unofficial iPhone app for Waydoo Flyer EVO ride logs. Tap Connect after a session and it joins the board's WiFi, copies the new rides off over MAVLink, and shows each one as a map colored by speed, with charts for speed, power, ride height and battery. Season and Battery tabs add up distance by month and follow pack wear across charge cycles. There's no account, and rides never go to a server: they're saved to your own iCloud Drive.
Built withSwift · TypeScript · React · Capacitor · MAVLink · PX4 ULog · Leaflet · iCloud
Coming soon