Jorge Manrubia

November 28, 2021

Don't block yourself: a remote-worker super-power

When working remotely, this is a great habit: make decisions and communicate them, but try to avoid getting blocked waiting on others. Imagine this typical example: you are not sure about how to do something. Your first idea might be to jump into a chat and ask someone for help. I won’t say I never ever do this, but it’s not a great ap...
Read more

November 20, 2021

MacBook Pro M1

Two weeks ago, I got a MacBook Pro 16-inch. I got the base model (M1 pro, 16GB). My previous machine was a loaded-up MBP 15-inch from 2019. Bottom line: it's been the most noticeable performance jump I've experienced since SSD disks. Performance The improvement is ridiculous. My previous MBP felt slow, and it often struggled to dispatc...
Read more

October 9, 2021

Career advice

A software engineering student asked me via Linkedin about career advice. Not sure I would take advice from myself because I made many mistakes, but here are a few things I wish someone had told me right after college: • Technical stuff is a fantastic career path, really. If someone tells you that true engineers don’t code, or that you...
Read more

August 29, 2021

Timeboxing away

Deadlines in software have bad press, for a reason. Say “we need to release this version at this date”, and you are stressing everyone out. Now, say “we need a version of this at this date”, and you are actually helping to ship. I learned about this idea of fixed deadlines and negotiable scopes from Basecamp many years ago, way before ...
Read more

August 19, 2021

Privacy-aware Rails consoles with console1984 and audits1984

We just released console1984 and audits1984. The first gem extends Rails consoles to make them auditable and to protect sensitive accesses. The second one is a simple auditing tool. This constitutes the other essential part of the technology we developed at Basecamp to raise the privacy bar in Rails applications, and I am thrilled to f...
Read more

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

See more posts »