Skip to Content

Longform Writing

Evergreen articles, fleeting thoughts, and other random prose.


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…

Marketing for Energy

Over my time running Sifter, I spent a lot of time trying out different marketing tactics. Then, working on Postmark, we tried quite a few additional tactics as well. The FOMO was always overwhelming. Retargeting. Banner ads. Blogging. A/B testing….

Ignorance is Bliss

About 11 years ago, I quit my job to start Sifter. Today, after my knowledge of running it for 8 years, I would have been too hesitant to start it. It’s not that I would be afraid, but I’d overthink it. I’d be at a standstill over-analyzing every single…

Focus on Learning Rather than Perfection

The pursuit of perfection is a ruthlessly efficient killer of ideas. Whether fear that we don’t have the ability to make something “perfect enough” or the temptation to endlessly refine something because of some arbitrary feeling that it’s “not ready,”…

The Accidental Business

Years ago, I shared some blog posts about half-baked ideas for a bug tracker. I wasn’t planning on trying to build a business. I wasn’t even sure if I was going actually write any code. I just wanted to explore some interface ideas.

Swimming Upstream Less

When you spend eight straight years designing, developing, and supporting a product by yourself, you gain perspective. You truly feel the consequences of your decisions as they ripple through the years. When you work on a team and are able to…

The Web We've Made

The internet is an awesome thing, but we’re ruining it. We probably can’t get enough people to stop shipping bloated and broken software, turn off their obtrusive newsletter sign up modals, or stop writing fake reviews for free products, but maybe the…

Writing in Code

When it comes to sharing ideas that involve visual elements, source code, and unifying concepts that span disciplines, the friction to include different types of media and information makes technical writing rather tedious, and streamlining that process a bit has helped make it more enjoyable to write.

Quitting Analytics

Some time ago, I removed all the tracking from my personal site, and I haven’t missed it. What started as a whimsical idea that was part performance-based, part referrer spam overload, and part backlash against Google evolved into a realization that…