Projects
Products and places I've helped bring online
Public products, customer-facing websites, and the systems behind them. Filter by the kind of work you want to explore.
An intelligent sommelier platform for sharper guest recommendations and smoother hospitality workflows.
A focused studio for designing, issuing, and updating cards for Apple Wallet and Google Wallet.
A streamlined interval timer for building and running polished Lagree, HIIT, circuit, and custom classes.
A polished service and booking experience for a luxury hair salon in Midtown Reno.
A lively restaurant site that puts the menu, hours, location, and ordering paths exactly where guests expect them.
A hospitality and retail experience for exploring wine, dining, events, and two Reno locations.
An atmospheric website for a Midtown Reno cocktail bar, with its menu, story, private events, and location up front.
A native Home Assistant integration with realtime device state, resilient authentication, and theme controls.
A focused iOS utility that turns the iPhone Camera Control button into a launcher for any Shortcut.
Your Spotify Wrapped, all year long.
Internal ops console that replaced vendor-dashboard chaos for a two-location retailer.
A focused platform for creating, customizing, and managing QR codes without the usual friction.
iOS wallpapers that change automatically with time of day.
I build the glue that makes devices feel native - reliable integrations, clean UX, and thoughtful defaults.

Smart Home
Smart Home Integrations
I build the glue that makes devices feel native - reliable integrations, clean UX, and thoughtful defaults.
Home Assistant contributions
Custom integrations that expose device state cleanly, with reconnect logic and resilient polling.
Homebridge plugins
Tovala + Moonside lighting plugins with rate limits, caching, and reliable TypeScript APIs.
Scrypted plugins
SimpliSafe integration that focuses on realtime events, durable streams, and graceful fallbacks.
Automation shortcuts
Small automations that remove manual steps while keeping control in the UI.










