Skip to Content

Longform Writing

Evergreen articles, fleeting thoughts, and other random prose.


Unified Configuration in Rails

Have you ever been working on a Rails application, needed to use a configuration value within your code and then couldn’t remember whether it’s a setting, secret, credential, or environment variable? If you haven’t, this won’t be interesting, but if you’re like me, it might be worth reading on.

Custom Rails Generators can be Your Secret Super Power

Creating your first custom Rails Generator can feel counter-productive at first, but with a little knowledge and experience, they can become a powerful tool to help you and your team save time.

Searching for a Search Engine

I’ve long been on the lookout for a search engine that would let me filter out sites that I’ve found to be more noise than signal. After a little over a month of paid use, I’m feeling cautiously optimistic about Kagi.

Ruby Introspection on Rails Generators

I built an automated tool to inspect and document all of the available methods in a set of Ruby classes and modules in order to answer questions and provide data and insights that would help explore and recognize patterns and concepts with Rails Generators.

Watch for Object Seams

Sometimes, our model columns/attributes are really their own objects in disguise. Frequently, they’re whispering to you that they want to be their own objects with their own tables.

Don't Change the Station

Someone once told me that radio stations never set out to play the best songs. They only want to play the songs that will make the fewest people change the station. He went further and said that they actually use polls for to figure this out. That is,…

Delete Friction

Brains and habits are weird. Sometimes even the most insidiously tiny bits of friction deter our best intentions, and it can be worth it to make something just a little bit easier in order to make it happen. Often, it only takes the smallest change in the right place in order to reset and rebuild.

Rails Generator Actions

Almost everything done with Rails Generators happens using actions that streamline common tasks that would otherwise have to be performed with lower-level file system commands. Some of these actions are Rails-specific and some come from Thor. This post explores all of them as a unified collection.

Rails Generators & Templates

While it’s difficult to identify one specific piece of Rails Generators that makes them special, Thor’s templating functionality makes a strong case for being that feature. We’re going to see how it works and the how Rails streamlines the process in order to see how handy templates can be.

Take an Easy Step

Big or bold steps aren’t always right. Frequently, they’re clearly wrong. Other times not so much. Choosing the right size for that next step isn’t always easy. But taking the easy step is often a good enough bet.

Live Coding Interviews

In the tech world, live coding interviews are very prevalent but but also terribly inaccurate proxies for assessing potential team members. Fortunately, with additional awareness these practices can be changed to provide better results for everyone involved.

Creating Custom Rails Generators

Rails generators can help remove significant friction from the process of spinning up new ideas, but you don’t have to limit yourself to the included generators. You can also create custom generators as long as you’re familiar with the available APIs and know where the speed bumps are.

Steering Attention and Leverage

Automated code review tools are a mixed bag, but if we could get all of the benefits with fewer of the drawbacks, they turn into powerful ways to leverage our limited daily time into significant results.

Movement & Joy

Sit-skiing has let me get moving again and find joy without pain, and it’s truly been life-changing.

A Heat Map Reporter for Minitest

I created a custom reporter for Minitest to try and proactively identify the underlying source of a problem by inspecting and classifying each failure and customizing the information displayed based on the context and type of failure. It also presents a heat map summary to help more quickly identify individual areas that are likely to be causing the other errors.

Thinking Smaller and Locally

This is a personal one, so bear with me. I’m sharing mainly because I can’t imagine giving myself this kind of space ten years ago. So I’m hoping that painting the picture could help other folks who may be in a similar space. Losing a limb kind of…

Thoughts on Trust in Business

The other day, I signed up for Hey without poking around or even thinking about it. I just put in my credit card and set up forwarding for my personal email. After the fact, I thought about how unusual that was and started thinking about what it takes…

Prioritizing Visual Stability on the Web

With any web site or application, speed is important, but it doesn’t live in a vacuum. If you get someone the content sooner, but it’s moving around so much that they can’t read it or interact with it, is it really worth getting it to them a little faster?

Getting Going

The last couple of months have been rough on everyone. While Lauren recovered at lower altitude due to her asthma, I was juggling work and the kids as a single parent–eventually giving up on work for a couple of weeks. Moreover, here in the mountains,…

Visitors, Developers, or Machines

I keep my feet squarely planted in two worlds when it comes to development. One of those is all things front-end, and the other is Ruby (and Rails). With Ruby/Rails, they’re frequently maligned as a not-serious programming language/framework pair…