I’ve been running Linux on my work machine (Dell XPS running Linux Mint, let’s get that out of the way) for nearly two years now. There are some super good reasons to run Linux on your work machine specifically if you do computer things, and some very good reasons to do it now especially.
Why now? [making the switch]
When I needed to get a work machine for my day job (I was using my personal Macbook Air pre-seed round), I was faced with the conundrum: go Macbook Pro per usual, or make the leap to Linux (hmm, book title?). Luckily, I’m somewhat of a stubborn person in certain senses, and when Apple had announced the Touch Bar in 2016, I was like noooooooo*
What is this hot garbage? If you are reading this on a machine with one, I just don’t understand you. You know what’s great? TACTILE KEYS. TACTILE KEYS ARE GREAT. “But I use a keyboard day to day” “but there’s XYZ you can do with it” WHATEVER. The lies you have told yourself to justify your poor decisions and why you continue to be brand loyal to a company that clearly doesn’t give a F about you, day-to-day developer, I don’t know. But the Touch Bar was absolutely key to me making the leap to Linux, as well as some other reasons.
You can do lazy Linux now
Whatever preconceptions you have of Linux of lore, of having to spend three days, 2 pizzas, at least one case of beer, and crying (what? we don’t admit the last one? whatever) in order to install Linux of your machine, you can scrap those. You can now use money to solve your problems! Dell’s Project Sputnik was a concerted effort to design a Linux machine ready-to-go for developers. If this is something I sound like a fangirl over, I am, and I might’ve gotten a little intense when I met someone last year who worked on this project. HOW AWESOME.**
You get paid EVERY DAY to Linux
Let’s get into the practical, day-to-day reasons why you’re running Linux on your machine. If you don’t have a background as a sysadmin (I don’t) but do systems/backend/distributed systems development (I do) one of your gaps of knowledge might be in bum bummm systems! And the little (or big) cloud machines running your software? They’re running Linux (of some flavor, very generally). Using a desktop every day that’s at least a little like the way your software runs in the wild has taught me so much. Some of the things I’ve learned and/or gotten drastically better at:
- Package management, apt-get, still learning stuff
- Permissions! Learning this is so useful!!
- Running databases on my own machine
- Doing basic things, such as capturing a screencast, by finding a package that will help me out, vetting it, using it, etc.
- Using utilities to ask questions about my system (ex. du for example)
- Reading the docs way more often in general
First of all, let’s cop to that I’m not great at using Docker. I don’t know how you get great at using Docker. I understand the concepts involved, I can write a Dockerfile, I just don’t understand why 8 million things would be created on my lil Macbook Air and make it cry and it was a constant struggle. Running Linux, I don’t need to containerize a lot of the software I work on to make it run on a similar system to prod because … I am on a similar system to prod (enough for most things). Take umbrage with this if you want, it’s my truth.
Tip for success: Be ready to nuke your machine
This is more a tip for running Linux daily for the first time, but it’s a tip for any developer machine, or anyone really! Always be ready to nuke your machine (that is, complete and total data-loss). Push your code to remotes. Store your files in the ~ cloud ~. Don’t leave things on your machine! This was a key thing that made me comfortable moving to a machine with such things, and I did have a hardware failure within the warranty period which led to …
Tip for success: When in doubt change distros
Why do I run Linux Mint on a machine that I bought with Ubuntu on it? Well, that hardware failure happened, I couldn’t get Ubuntu to work again, and my friend Kelly came to my rescue with a copy of Linux Mint on a Yoda USB stick, and boom, I started running Linux Mint. I actually really like it (more than Ubuntu I’d say) and I just rolled with it. Maybe that terrifies you, I don’t know! But since I could recover everything I needed, it wasn’t a terribly big deal.
Be a weird hipster
Let’s be real here (although, is that the theme of this entire piece? might be)– I live in Philadelphia, I ride bicycles, I work out of a weirdo co-working space and work for a company that exists on the internet. I’m a hipster and I know that. You know what real hipsters run [who aren’t designers]? Linux. Checkmate.
Blame things on Linux
And finally, when in doubt, whenever you have a computer problem, you can be a bad person and blame it on your OS. I couldn’t figure out how to get the microphone to work on my machine for 2 months. Blamed Linux [there was a setting I hadn’t changed, it was really easy to “fix”]. Can’t reproduce something? Blame Linux [ok, that’s bad of you, but it’s happened, and I like having my personal Macbook Air that I hope lives forever for this purpose]. So, mixed bag.
Overall, I’ve learned a TON by running Linux every day (and getting paid to do so!!). So if you’ve got the blessing and budget to buy your next work machine, make it Linux 🙂
* possibly an actual quote
** Sorry, person I met last year, for being really intense. I … really like this project.