I’m a staff software engineer at GitHub, working on user interface architecture and strategy. I also lead development of the ViewComponent framework. I’ve previously worked at Galvanize, Wunder Capital, and MojoTech.
I’ve spent most of my career building Ruby on Rails applications, increasingly with a focus on user interface architecture. I’ve made several contributions to Rails, including support for 3rd-party component frameworks, a helper for dynamically constructing CSS class names, template path annotations, marking code as uncacheable, and strict locals for templates and partials.
I’ve spoken at RailsConf (2019, 2020, 2021, 2022, 2023, 2024), RubyConf, Brighton Ruby, RubyDay IT, RubyConf Taiwan, Rocky Mountain Ruby (2023, 2024), Boulder Ruby, Ruby Galaxy, ChicagoRuby, NYC.rb, Open Source Friday, and on the Remote Ruby, Ruby on Rails (2019, 2024), Ruby Blend, Code with Jason (2019, 2021, 2024), and Ruby Rogues podcasts.
I am a firm believer in the power of peer mentoring. In addition to being a Big Brother, I regularly support several aspiring engineers in their pursuit of a career in software. I’ve also volunteered as a guide at RailsConf for several years.
I previously worked as a photojournalist at several newspapers including The Roanoke Times and The Seattle Times, and have contracted for The New York Times and The Wall Street Journal. I now focus on travel and nature in my personal work.
I created ViewComponent, a framework for building encapsulated, unit-testable view components in Ruby on Rails.
I also introduced support for component frameworks like ViewComponent to Rails.
Wanting to minimize use of my phone around the house, I built Timeframe, an e-paper calendar and weather display. I’m currently working to migrate it to be a Home Assistant add-on, which will require changes to Home Assistant.
SoloFolio is a portfolio website platform for visual artists.
SoloFolio started out as a WordPress theme I built in high school to publish my photography portfolio. In college, a few friends asked to use it for their sites, so I turned it into a SaaS platform.
I’ve since rewritten it in Ruby on Rails, using it as a test bed for new technologies I want to learn, such as React.