Hi. I write apps and stuff. My latest project, cords.chat, is probably the fastest AI chat app you've ever used.
Other hobbies include cooking, cycling, golfing, and photography. 99% of these photos end up being of the family pets:
Experience
Osano
Currently adding LLM-powered features to Osano's consent management platform as well as leading development of React Native, iOS, and Android SDKs.
Forward
Built internal tooling with a focus on API integration and automation.
Atrium
Developed and maintained legal software for the Atrium LTS platform, which served as the foundation for the company's legal services. Worked on a variety of projects including a document automation tool and Office 365 JavaScript extension.
Linde Group
Provided Mac, Windows, and Linux desktop technical support for a variety of Bay Area clients. Maintained the open source AutoPkgr project.
Projects

Cords Chat
Blazing fast AI chat app with support for models from OpenAI, Anthropic, Gemini, Llama, DeepSeek, and xAI. CMD + K navigation, text-to-speech playback of messages, attachment analysis, and more.

Tangey
Aesthetic home screen widgets powered by Strava and a custom polyline rendering engine built on top of MapKit.

Avarts
Open-source and self-hostable fitness platform that enables cyclists to track and analyze their workouts. Includes a companion iOS app which served as the foundation for the Tangey project.

Slackmojis-dl
CLI tool for downloading emojis from www.slackmojis.com with optimized async/await supporting up to 300 images per second. Created while working at Atrium so we could populate our Slack instance with a bunch of emoji categories like sports, brands, and mostly importantly, party parrot.

2016
Top 5 Best "Powered by Strava" AppsDesigned by hand, built with Next.js and Tailwind CSS. Deployed to Vercel. Making the supernova light mode animation was by far my favorite part.