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 six years and I continue to love working on an app I'm passionate about while solving interesting problems along the way!
Over the course of my career, I've 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. 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, SQL, Redis, Kafka, Javascript, and Android. I enjoy solving diverse technical challenges, from fine-tuning database queries to improving user experience or architecting new systems that can handle our growing user base.
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!
Wow, what a wild year it’s been! Claude Code was first released only a year ago, though it feels like it might have been a decade. The progress on LLM developer tooling has been unreal, and it really feels like there was a big shift a few months ago, around November, when Opus 4.5, Gemini 3 Pro, and GPT 5.1 all came out. These models were notably better than the previous generation. Around the same time, OpenClaw started to become wildly popular, and changed the way many people think about AI. With everyone talking about OpenClaw, and with @steipete joining OpenAI, I had to try OpenClaw for myself to see what all the hype’s about. (I want to learn more about AI tools and about what makes OpenClaw special, and I’ve always found that the best way to learn something is by just doing it.) And I’m not alone –1 even Andrej Karpathy had to give OpenClaw a go. I learned a lot along the way. Not only about OpenClaw, but about AI and LLMs in general, and I think some of it’s worth writing about!
This post was written by me, a human, without AI. I’ve been using emdash ↩
I’ve been managing my dotfiles with Chezmoi for nearly five years now, and I love it!
Chezmoi fundamentally changed my approach to dotfiles with templating, making it
easy to keep my dotfiles working on multiple machines and even multiple
operating systems. And Chezmoi’s integration with password managers made it
easy to keep important identity files like id_rsa synced and backed up while
remaining secure. Overall I’ve been really happy with my dotfiles setup, but in
the last couple months I started noticing some pain points. Every time I synced
my dotfiles, I got prompted for my Bitwarden password. For a long time this
didn’t bother me, but I found myself getting increasingly annoyed at having
to authenticate to my password manager, and sometimes even re-authenticate with
2-factor authentication, when I knew my secrets hadn’t changed. I realized I
was actually avoiding updating my dotfiles because I didn’t want to deal with
the password manager – which is exactly the opposite of what I want. So I
finally decided to do something about it.