Hello, World!


I'm a backend software developer in Portland, Oregon. I've been working in Ruby—mostly backend Rails—since 2006. I have Opinions about automated testing, refactoring, and object-oriented design. (Hint: they mostly align with Sandi's.)

I've become fairly specialized in cleaning up and maintaining legacy codebases so they can be sustainably developed for years to come. I've seen (and committed!) most of the common blunders, and I enjoy helping people learn how to recover from them.

As of late 2025, I'm a lot less excited about Rails than I used to be. I love the expressiveness of Ruby code, but I'm starting to get back into Python after 20 years away.

I'm currently employed full-time, and not actively looking for a change. Still, feel free to contact me—some of my most interesting jobs have come from random conversations!

Attention, Recruiters: READ THE FAQ.

While I try to reply to all inquiries, my time is limited, and I have stock answers to the most common questions. It'll save us both some time if you go there first before emailing me.

Also, before you send me to your calendar to schedule "a quick call," please read What I Look For. If it doesn't answer most of the questions you'd go over in that call, let me know.