Hi, I'm Blake Williams

I’m a Principal Engineer at GitHub based in Boston building Ruby, Go, and React apps at scale. I care deeply about simplicity, multiplying the impact of others, and building the right thing.

The Joy of Reading Source Code

September 10th, 2024

This morning I was drinking my coffee and eating a pastry while reading about how you shouldn’t defer Close() on writable files and dove into the HN comments. The first comment calls out a minor improvement that can be made to the code. Specifically, using errors.Join to combine the returned errors in a succinct and clear way. I wasn’t familiar with errors.Join so I decided to dive into the source code a bit.

Does ActiveRecord Need Another Layer of Abstraction?

March 5th, 2024

ActiveRecord is arguably one of Rails’ best innovations and killer features. Lately, however, I’ve questioned if the abstraction goes far enough. It’s a great abstraction over SQL and I’ve come to believe that we need one more layer of abstraction for maintainable applications. We need the curation and encapsulation of queries.

Show Me, Don't Tell Me

August 28th, 2023

In my time as an engineer I’ve reviewed (and will review) tons of engineering proposals. So far these proposals have ranged from small changes in infrastructure or code all the way to extensive architectural proposals that could span years to reach completion. In all of those proposals there’s a single factor that separates a good or poor proposal from a great proposal: They “show me”, not “tell me”.

Type-Safe Server-Side Templates in Express using JSX and React

January 1st, 2022

I started hacking on a side project during the holiday break and ended up giving TypeScript, TypeOrm, and Express a try. I’m very impressed with the level of type safety the combination provides but was disappointed that the view layer was type-unsafe. I started with handlebars but after a few bugs, I decided to spike out using JSX/React as a server-side templating language and was surprised at how easy it was to set up.

A Minimalistic Approach to Staying Organized and Consistent

December 11th, 2021

In my day-to-day work, I often find my attention being pulled in several different directions. It’s often some combination of meetings, pairing sessions, code review, actual coding, API design, responding to issues, and much more, depending on the day.