Ben Saufley

Software
Engineering Leader

On DEI

I just have a blog that nobody reads, but I want to express something I think everyone with a platform should be saying right now1:

Diversity, equity, and inclusion are unequivocally good things, and the campaign against these things (always shortened to “DEI” to divorce them from their actual meaning) is led by people who either publicly or privately harbor ugly feelings about their peers and neighbors; people who are unhappy about having to compete on a level playing field with people whose worth they consider less than their own.

Read more…

Parental Leave

graph of git contributions with gap for parental leave

I posted this on LinkedIn in November and am posting it here, backdated, as I’m updating my website, because I think it’s important.

In August, my wife gave birth to our first child. She’s the best. We’re so happy. It’s been a long journey. This isn’t a post about the years it took to get there, but the weeks since.

Read more…

On Magic

This post isn’t specifically about Ruby on Rails, but it’s definitely about Ruby on Rails among other things.1 Rails is a very useful tool to bootstrap an MVC application, and to this day I haven’t encountered an ORM I like better than ActiveRecord, but I want to talk about one facet of Ruby on Rails’ patterns, which stems from the way Ruby works but also shows up in other languages and other tools: “magic.”

If you’ve used Rails, you’re familiar with the magic involved, but briefly: without using any code-generation tools2, Rails will create a massive assortment of methods dynamically at runtime based on the names of your models, controllers, and routes. So if you have a simple CRUD setup for your User model, you’ll have things like users_path, user_path(id), new_user_path, etc, and if the User model has_many :posts, then every instance of User will have a posts method to retrieve associated records.

To me, “magic” in coding is any scenario where without explicit declaration, an application seems to “just know” how to behave.

Read more…
Next ▸