Work

12 projects across iOS, web and desktop. Each one exists and runs. Client builds are described by what they do, not who they were for.

Want something built? Start here.

Products I built

iOS app

MarketMaps

Indoor maps for grocery stores

Shows you the real inside map of a store and walks you aisle by aisle through your shopping list. Covers 2,544 Kroger-family stores with audited offline inventory packs and per-aisle data.

Built with Expo, React Three Fiber, ScrapFly

iOS app

Ledger

Expense reports for small teams

Employees log expenses, receipt photos and mileage by stop, then submit weekly reports. Admins approve, return or record reimbursements, and export to CSV for accounting. Data stays in the team's own iCloud, with no tracking. Also delivered as a custom web edition for a company, with QuickBooks sync and bank linking.

Built with Swift, SwiftUI, CloudKit, QuickBooks

Telehealth platform

97 Consult

Remote care for therapy and consulting practices

A complete remote-care suite for healthcare practices: everything a provider needs to deliver speech therapy, consultations and ongoing care online, from one platform.

Built with Web app, Firebase

Communication app

One Language

AAC for every age and access method

An augmentative and alternative communication app: a configurable symbol grid, a sentence builder with spoken output, next-word prediction, switch scanning, and per-user profiles with their own voice and vocabulary. Free to use.

Built with Next.js, TypeScript, Web Speech API

Web app

ClearPrint

AI contract and bill analyzer

Paste any lease, bill or terms of service and get the truth in plain English: red-flag detection with severity ratings, a fairness score, consumer-rights lookup, word-for-word negotiation scripts, and a dark-pattern scanner for websites.

Built with Next.js, LLM, Stripe, Vercel

Accessibility tool

MacroGaze

Eye-gaze control for game controllers

An eye-gaze keyboard and macro hub for virtual controller use: look to press, a macro editor with gamepad preview, AI intent prediction, and offline export. Free to use.

Built with TypeScript, Vite, Gemini API

Web app

AutoSync Pro

Vehicle diagnostics and fleet dashboard

VIN-based vehicle profiles, per-module health status, AI-generated repair reports with steps, tools, labor time and parts estimates, and a live fleet view.

Built with React, Firebase, Gemini API, Web Bluetooth

App

Studio Booking Planner

Bookings and events for service studios

A customizable workspace where each studio sets up its own business details, then manages bookings, appointments, events and client records in one place.

Built with Mobile, Scheduling

Dashboard

KDP Ads Manager

Amazon ads for self-published authors

A focused control panel for authors running Amazon ads: campaign controls, keyword-level spend tracking, alerts on money-losing keywords, and bulk bid editing.

Built with Next.js, Amazon Ads API

Built for clients

Desktop and web app

Solar sales satellite tool

Lead intelligence for solar field reps

Satellite imagery, interactive rooftop overlays, versioned state incentives, one-call site packages and proposal generation for residential solar reps. Ships as a double-click Mac app.

Built with Python, FastAPI, Leaflet

Internal web app

Restaurant operations hub

Back of house for a full-service venue

An operations system for a restaurant and catering business: interactive floor plan with seat assignments, integrated staff scheduling, and inventory and staff modules, built around the venue's actual daily workflow.

Built with Next.js, PostgreSQL, Prisma, Vercel

AI assistant

AAC coaching assistant

Coaching support for a speech and therapy practice

Guides caregivers and therapists through using AAC devices, with a built-in device reference and a structured session summary generated at the end of every coaching conversation.

Built with Claude API, Node.js, Vercel

Start a project

I take on a handful of projects at a time and build them end to end: design, code, data, deployment. If you’ve got a real problem worth solving, tell me about it.