I'm a software developer in Portland, Oregon and a panelist on the Greater Than Code podcast. I've been writing code professionally since 1998. I primarily work on custom internal applications; I'm strongly motivated to write clean, maintainable code; and I've been working in Ruby (mostly Rails) since 2006.
While I try to answer all inquiries, it'll save us both some time if you read the FAQ before emailing me. In particular, please do not contact me about jobs that require relocation or significant amounts of travel.
I'm currently employed full-time, and not actively looking for a change. Still, feel free to contact me—there's a chance I'll know someone who meets your needs.
I stumbled into a programming career by way of Microsoft Access 97. After a few years building tools for small workgroups, I went back to school for a computer science degree. I graduated cum laude from Portland State with honors from the CS department in 2007. Since then, I've mostly been writing web applications using Ruby on Rails, specializing primarly in back-end work. All along, I've found a great deal of satisfaction in automating drudge work so people can spend more time doing interesting jobs.
I've greatly enjoyed mentoring in various forms: onboarding an experienced software developer who was new to Ruby and web development; advising code school students; helping out small groups in "single serving" environments like user group meetings or training workshops. At larger scales, I've also done a bit of public speaking, made a screencast or two, and written a rather popular site about version control software.
- A summary of my employment history and education.
- A list of my public speaking experience.
- A description of my community involvement, including educational resources I've created.
- Answers to a few Frequently Asked Questions.
That said, these GitHub repositories will give you a reasonable idea of what my Ruby code tends to be like: Hypercuke, Cordon, Memonymous, Medievalistic, Ladd's Graph, Scotland Yard, and HighlandAR. (And yes, that last one is a joke.)