I build tools at the intersection of AI, real-time data, and delightful UX — mostly to scratch my own itch, often ending up as something others can use too. Connect with me on LinkedIn.
Live audience engagement — physics-animated polling where votes become glowing spheres, plus dynamic word clouds with AI clustering. No app install — scan a QR code and watch results materialize on screen. Built for speakers, facilitators, and storytellers.
MCP servers and plugins that mirror real enterprise work data — HR, CRM, invoices, and IT ticketing. Read and write. No auth, no setup. Paste a URL into Copilot Studio, Claude, Cursor, or ChatGPT and test ideas fast.
Turn any screen recording into an interactive click-through demo. Upload a video and get back a shareable HTML simulation — viewers click through each step at their own pace instead of watching a video. Perfect for product walkthroughs, training guides, and documentation.
A voice agent that places real phone calls on my behalf, shaped by an LLM's direction and grounding. Ask your assistant to "book a table for four Friday at 7," "confirm the repair appointment in my calendar," or "call this shop and ask if they have it in stock," and it makes the call — disclosing that it's an AI, negotiating only within bounds I set, never fabricating, and reporting back. It can even book a reservation in a language I don't speak: English and Japanese out of the box, with any other language added on the fly (translated prompt + a native voice). Built on Retell and exposed as a hosted MCP server, so any assistant (Claude, ChatGPT, Copilot) can drive it; it learns the details it was missing from each call and re-dials an unanswered call once.
Real-time kiln monitoring for ceramic artists at kilnsense.com. Sign in with your KilnAid account to track temperature, firing schedule, and kiln status from any browser.
An interactive AI adoption maturity assessment that guides organizations through a decision-tree questionnaire to evaluate their AI readiness across a three-phase model — Empower, Reshape, and Reinvent.
A Raspberry Pi kiosk app that tracks aircraft overhead in real time using OpenSky Network data. Features two display themes — a vintage Solari split-flap board and a modern Heathrow-style signage — designed for 7″ and 10″ touchscreens.
Brings the Orion Sleep mattress topper into Apple HomeKit. A Hubitat driver plus Postman collection that reverse-engineer the bed's API for temperature and thermal-relief ("hot flash") control — so a physical button can warm, cool, or trigger relief on either side of the bed.
An offline-first PWA for tracking hot flashes and menopause symptoms, built for the case that actually matters: 3am, in the dark, on a phone with one bar. One tap logs a flash; intensity, nine symptoms, a note and a finger sketch are all optional and editable later. Also logs from Siri, an iOS Shortcut, or the bedside button that starts the bed cooling — and exports the lot as CSV or JSON. Fastify + SQLite on Fly.io, replicated with Litestream.
Derived-sunlight automation for exterior shades. Combines solar position, Open-Meteo radiation, facade geometry, and dwell-gated hysteresis to safely control multiple one-way Somfy RTS/Bond shades.
A self-hosted MCP server that books salon appointments through SalonRunner — the booking system my hair salon uses. Ask your assistant to "find a haircut next Tuesday with my usual stylist" or "cancel my Friday appointment," and it lists services and stylists, finds real availability, and books or cancels on my behalf. It reverse-engineers the SalonRunner client API and is exposed to claude.ai as a remote connector — you sign in with your salon login on a consent screen, your credentials are encrypted into the token (so authorization survives scale-to-zero), and one deployment can serve any salon on SalonRunner.