Jorge Manrubia

July 21, 2021

Making Rails run just a few tests faster

Some time ago, I learned that Rails parallel testing had a significant overhead due to database setup and fixture loading. Essentially, each process will set up its own database and load all the fixtures, and this is not free for non trivial datasets. Fixtures are a factor here. At Basecamp, we use fixtures heavily and, when running si...
Read more

June 18, 2021

A story of Rails encryption

This story starts in October of 2019. I was in the Basecamp meetup in Chicago two weeks after joining the company. During an internal presentation, David talked about the need to raise the bar when it came to privacy for the new product the company was working on, codenamed Haystack, now HEY. We all were busy with all kinds of projects...
Read more

April 19, 2021

Complexity-inducing narratives

I recently gave a talk on software complexity, Single Page Applications and Hotwire (slides). Due to time constraints, I ended up cutting off a whole section on narratives that are often Trojan horses for unjustified complexity and decided to write it down instead. These narratives are: • It doesn’t scale • Tech giant uses it • In the ...
Read more

April 9, 2021

Farewell Evernote

I've been using Evernote since September of 2010. I started as a passionate user, and it quickly became an indispensable part of my workflow. Then, the product started to go south, slowly but steadily. The clients became more complex, heavier, and uglier. They added a ton of features nobody asked for. And they didn't improve the one th...
Read more

March 19, 2021

A Basecamp email: before and after

As a longtime fan of Basecamp copy, I always enjoy asking for help with user-facing texts I need. This time we had to send an email to some users that were impacted by a bug. I went to Jim Mackenzie. Here's the before and after. Before: “Hi <name>, We recently discovered a bug in HEY where it could fail to move emails to the designated...
Read more

March 14, 2021

Extracting, not inventing

Documenting the pull request to add encryption to Active Record brought me memories about the origin of each feature: • Support for unencrypted data: HEY was already used by staff and some beta users when we added encryption. • Option to downcase: emails are not case-sensitive. • Option to ignore case: labels are case-insensitive when ...
Read more

March 6, 2021

Smelling Rails smells

Shopify recently published Upgrow: A sustainable architecture for Ruby on Rails. It describes a set of architectural principles to build Rails applications and announces a companion future gem. I was surprised by seeing Shopify endorse this approach. The proposed patterns aren't new. Many people have advocated for them since Rails is R...
Read more