Husband. Father. Software engineer. Ubuntu Linux user.
I'm a husband, I'm a father, and I'm Catholic. I'm an Ubuntu Linux user, and I'm a staff software engineer at Strava. I've been working for Strava for over seven years and I continue to love working on an app I'm passionate about while solving interesting problems along the way!
I have experience working on performance, scalability, feature development, systems architecture, and developer experience in a wide range of technologies including Linux, Ruby, PHP, Scala, Java, Docker, SQL, Redis, Kafka, Javascript, and Android. I enjoy solving diverse technical challenges at scale, from fine-tuning database queries to improving user experience or architecting new systems that can handle our growing user base.
Before joining Strava, I worked for a variety of tech companies (Pariveda, SpotX, and Zen Planner), and I even taught high school math for a couple years as part of the Denver Teacher Residency.
In my free time, I enjoy working on DIY tech projects, from 3D printing and electronics to home networking and Linux laptops. I write about these projects here on my blog, along with software development tutorials and technology reviews, to share what I learn along the way in hopes that others find it interesting and useful too!
The Pine Time is a $27 smart watch that runs open source firmware. I’ve had one sitting in the back of a drawer for a year or two. When I saw @steveruizok’s Tweet about hacking on ESP32 devices with Claude, I found some inspiration to pull my PineTime out of the drawer and see what Claude might be capable of!
Astropilot VR is a 3D VR game for mobile phones that I vibe coded in a single weekend, as part of Vibe Jam. The game is a single HTML file (with embedded JS) that’s about 5,000 lines long, built primarily with Kimi K2.5 in OpenCode. I think the game’s really fun to play, and I hope you give it a try, but here I want to focus on the technical aspects and the vibe coding experience. I was pretty surprised what I could accomplish with a single HTML file: