Jake Worth

Jake Worth

Goodbye Shared Dotfiles

Published: May 25, 2022 2 min read

  • terminal

A lot of people start programming with shared dotfiles, copied from a team or online. I did.

Maybe you’re ready to move on. Why would you do that? How would you do that?

Recently after 6.5 years, I removed the Hashrocket Dotmatrix, a powerful set of tools, from my workstations. In this post, I’ll discuss these tools, and why and how I uninstalled them.

What is the Dotmatrix?

The Hashrocket Dotmatrix is a set of configurations built by generations of consultants at my previous employer, Hashrocket.

The Dotmatrix is a refined, well-maintained, opinionated set of configurations installed on each Hashrocket workstation, and on the workstations of many alumni. Think configurations for Vim, PostgreSQL, and Ruby (and React, Ember, Elixir, etc.).

I learned my trade with these tools. On the best days, our team would drop into a codebase, pick up these tools, and start shipping.

Why Did I Uninstall It?

Moving away from our shared tooling after half a decade was not an easy decision. So, why bother?

First, I advise programmers not to copy and paste dotfiles, and working from other people’s configurations didn’t feel like living that advice to me.

Secondly, once a tooling-savvy engineer at Hashrocket told me he did not use the Dotmatrix on his personal workstation, which baffled me. He explained that he’d spent a decade building a development ecosystem and that any change, even toward a standard, would have been a regression for him. I hoped to have those kinds of opinions someday.

Lastly, one of the challenges of shared configurations is that they have to work for everybody. The Dotmatrix must make tradeoffs to support both a new MBP and a ~2010 iMac. Sometimes you can’t get new stuff because it doesn’t work with the old stuff. I don’t want to make those tradeoffs.

How Did I Uninstall It?

To summarize how I moved away, I:

  • Started on a new machine
  • Figured out what was missing
  • Copied the missing configurations over

I started my journey on a new computer. If you can time the transition with a computer replacement, it helps.

A lot of tools I counted on were missing. When I found one, I’d open the Dotmatrix repo, find it, figure out how it works, tweak it, and copy it to my local configuration files. It was difficult at first. Along the way, I learned which tools of the many in Dotmatrix I actually use.

Once I got the basics, I committed all the files to Git and pushed to my dotfiles remote. Then, I uninstalled the Dotmatrix from my other existing workstations, and cloned the configurations onto them. Repeat, repeat, repeat.

Now about a year later, like Wile E. Coyote running off a cliff, I’ll still try to use a command that I don’t have. When this happens, I repeat the above process.

Closing Thoughts

Thank you to everyone who built and maintains the Dotmatrix. You are legends.

Maintaining my configuration has helped me refine my skills and gain more confidence in what I can do at the keyboard.

Want to follow my meandering dotfiles journey? Do so at my dotfiles repo.

What are your thoughts on this? Let me know!

Join 100+ engineers who subscribe for advice, commentary, and technical deep-dives into the world of software.