Writing on life, business, art & other random topics.

All of my long-form thoughts on tech, leadership, product design, and more, collected in chronological order.

A Simple Technique to Improve Complex Methods

If you ever run Flog or Reek, you’ve most likely encountered TooManyStatements and VeryHighComplexity violations in the results. I use Flog and Reek continuously to help identify areas of improvement by flagging potential code smells, such as excessive statements and high complexity early in the development cycle.

Using SQL to improve your Ruby code

I love refactoring Ruby code. One of the best ways to clean Ruby code is by leaning more on your database for the work. You not only make the Ruby code more efficient, we can spread the work load between our web servers and database servers

Happy 30th Birthday Ruby

Big happy birthday to Ruby! Ruby turned 30 this month so I thought I would share a little bit about how I first discovered Ruby and why I still love it today. I was in high school when Ruby was conceived, but it wouldn’t be another thirteen years before we would meet.

Defensive Development

Much like Defensive Driving, in which Wikipedia describes “anticipating dangerous situations, despite adverse conditions or the mistakes of others when operating a motor vehicle”, defensive development is building software that anticipates future “one-off” features and deployments by having tools to solve problems already in production.


I’ve always been a walker as for as I can remember. By “walker”, I don’t mean just hiking, but rather just walk-out-the door walker. I walked to school, I walk to work, I walk to get coffee, I walk anywhere and everywhere I can. I make it a point to walk the streets because for me to feel grounded, it requires my feet on the ground.

Maintainable Rails: A Rails Engine Strategy

If you’ve ever worked for a company or organization that runs multiple Rails applications, you’ve most likely seen these projects using different sets of plugins, front-end frameworks, coding techniques, test frameworks, etc. etc. Ultimately having a ton of technical debt leading to heavy context switching slowing progress to a crawl. Most of the time it’s inevitable because keeping multiple applications up-to-date and consistent is a daunting task.

The Joy of Side Projects

Have you ever got excited about an idea and wish you could do, but never have the time to start? This has been my personal dilemma for as long as I can remember - that trapped feeling working on a other people’s ideas to pay the bills while daydreaming about working on my own stuff. Over the past few years, I’ve been working on few techniques to help break through this quandary.

Favorite Tools for Working in Ruby / Rails

Over at the Shopify Enginneer Twitter account, an interesting question was posted that got me thinking about my favorite and most used Ruby/Rails tools. It’s nice to see what other devs are using so I thought I would share with you what I use the most on a daily basis. In a lot of cases, I’ve been using the same tools for over a decade.

2021: A Year In Review

For many of us, this past year has presented us with quite a few challenges. For many personally, it’s been a few ups and a few downs both professionally and personally. The affects of the pandemic continued to roll on this year much like 2020. For much of the past year, it seemed like the movie Groundhog day - wake up, walk to my office, work on something, and then go home. For this post, I thought I’d shine a spotlight on a couple highlights and some lowlights.

To Gem Or Not To Gem

When it comes to running a Rails project for the long-term, one strong indicator for success is gem decision. I’ve worked on dozens and dozens of Rails applications during my time as a consultant and often times a client’s project would be either be suffering from poor performance or is too difficult to maintain and progress has slowed down to crawl.