I’ve had a lot of questions over the years about working remotely, so here’s my attempt at rationalizing it and describing what works for me. Much of it makes a lot of sense on paper, but overall creates arguably a pretty weird setup. It works absolutely beautifully for me though :-)
This is the “theoretical” part. Feel free to skip if you want more practical tidbits.
I don’t think any kind of remote work can exist without the following:
Trust: You need to establish a certain level of trust as a pre-requisite. If you are freelance and work on a per-project basis this is usually not an issue. If you work for an employer, it’s probably a good idea to only start thinking about remote work after a period of onboarding, establishing in-person connection with the main stakeholders and building up mutual trust. It also helps to do it progressively. Switching from “physically in office every day” to “100% remote” is likely not a good idea.
Transparency: If you work for an employer, try putting yourself in your manager’s shoes. There’s this employee who is who-knows-where and seems to be sending in some work but if you have no idea what they’re doing there’s always going to be some level of uneasiness. As the employee, I find that the best way to compensate for this is transparency. A lot of it. As far as I’m concerned I have a public travel schedule and “daily snippets” which describe everything I’m doing on a given day, dating back to 2008 (those are only available within my company, sorry). If anything takes me more than 15 or 30 minutes, it deserves an entry in those “snippets”. It can be uninteresting or trivial, that’s okay. It’s meant to show what you’re spending time on. That way your manager knows you’re not just slacking off at the beach, and if they do read it and see you get blocked on some things they might offer their help. Some days might have more stuff than others, that’s okay too. Nobody is 100% productive all the time, but things even out at a larger scale. This is just meant to give more transparency.
Communication: Still in the spirit of being transparent, I find that it’s better to err on the side of overcommunicating. Send status updates. Let people know what you’re working on. Ask for help when you need it. Offer your help when you see someone in need. Being far away physically shouldn’t be a barrier to any of that: use video calls, screen sharing, and all those neat things that technology gives you. If you’re worried that you’re communicating too much, just make it easy for people to filter what you send, and never assume that people have read your stuff. One way I like is, in addition to the “daily snippets” above, to send a less verbose summary of what I’ve been up to in the past 1, 2, 3 weeks to an ad hoc email alias. More specifically, I use a Google group (something like email@example.com). People can subscribe and unsubsribe, filter out, skim through, and the archives make it easy for people to go back in time and for you to point to a URL that has a past update.
If the project you work on doesn’t require any special computing power (e.g. to compile your code), then any hardware will do; I would pick something like a thin laptop that’s easy to travel with.
If it does (as is the case for me), here is my sort-of-creative-but-pretty-weird solution:
In short, I’ve realized that the power supply is both the cheapest part of a desktop computer, and also the bulkiest and the heaviest. So I carry around a stripped down computer (motherboard, processor, memory, sold state drive, graphics card), without a power supply, and whenever I arrive at a new place, I buy one (usually around $20 to $40 max). I also carry a light keyboard and mouse. Wherever I go, there’s always either a computer monitor (if in an office) or a flat screen TV (in an apartment) that I can use as a monitor. So I carry this around, which is a lot more powerful and a lot lighter (no battery, no display, no power supply) than a “portable workstation” type of laptop (and maybe half or a third of the price).
I’ve also built my own silly little wooden case.
I switch machines often (laptop, desktop, etc.) so I need an easy way to replicate the exact same setup everywhere. Here’s what works best for me.
Everything needs to be text-based. If a piece of software doesn’t have text-based config files, I won’t use it.
I use exclusively open source software. Linux desktop environments, open source programs, etc. This is really mostly a consequence of the previous point. Proprietary software often has a proprietary config format.
I use a special git repository for config files and some simple scripts to pull those down, sync and deploy them where needed, and install the set of packages/software I need. That way I can take any new machine or system running Linux and automatically transform it into something 100% tweaked the way I like it.
Local computer = burnable. Stuff happens to computers. Laptops break or get stolen, hard drives crash, etc. I never leave a session without making sure everything has been synced to “the cloud”, whatever shape that takes. Then I can resume from anywhere.
Script, script, script. Automate as much as possible. I have scripts to automatically sync my various git repositories (configs, projects, etc.), to check everything is looking good before leaving a session (repos up to date? Dropbox up to date? No unsaved open files? no unsynced/unknown local files?), and even to geolocate my IP to set up my monitors appropriately depending on where I am.
More of a productivity tip, but I use a tiling window manager (namely “Awesome WM”, but there are a few). I find that not having to waste time resizing and repositioning windows make a significant difference.
I know it’s a little sad after 8 years of working on Gmail and Inbox, but I don’t use web UIs. I do use a Gmail account, but I sync everything through IMAP locally (with offlineimap) and I use mutt. I also put my mail folder on Dropbox so it’s synced between machines without having to sync each one with IMAP (slow with Gmail).
The advantage is that 1) offline is not a problem and most importantly 2) I have a lot of local scripts to filter email, auto-reply, etc. Gmail has nice filters, but it’s nowhere near as powerful as Python scripts on local mail.
I also have an Outlook account where all my email gets forwarded to, because Gmail is blocked in some places (e.g. China).
I use Google calendar extensively. One weird thing is that it’s always set to UTC. All my meetings are labelled in UTC, and my watch shows UTC. It avoids a lot of timezone-related headaches, but it is something to adapt to.
It’s important for me to check that any place I’m going to be staying at has fast internet. One way to check that, for instance with AirBnB, is to ask the host to share a speed test screenshot with me before I commit to making a reservation.
But while I’m on the road I heavily rely on my phone’s data plan, for which I use Google’s Project Fi. It’s probably a little more expensive ($10 per gigabyte of data) for each single country, but the fact that I don’t need to worry about whether I’ll have access to the internet in pretty much any country is a big relief. I make copious use of my phone’s hotspot capabilities.
I also carry two tiny wifi routers so that once I get a data connection, be it through hotel wifi or ethernet, or through my phone’s hotspot, I can put all my devices on the same wireless network without having to program a new wifi ID and password on each of them.
I use Dropbox to sync most of my stuff. No Google Drive because it doesn’t support Linux. Dropbox also has a nice command-line interface that I can use in scripts (make sure everything is synced, exclude some directories, throttle/unthrottle bandwidth, etc.).
I don’t care a whole lot about brands and looks, but I think some sane requirements for a nomadic use case are:
I put all my music on Dropbox. I’m sure Spotify works well too, but I’m often offline and I dislike the idea of a monthly subscription to listen to music. So I buy all my music DRM-free and keep it synced everywhere. Maybe I end up paying more overall when I get a lot of new music, but at least I can stop paying and still have access to a pretty huge library.
Of course I make connections wherever I go, and I regularly visit places where I have long time social connections and family, but most of the time the nomadic life style is fairly solitary. I personally love it, but it’s not for everyone.
Having basically become what you could call a modern nomad, I have to think very carefully about what I bring around with me all the time. This also means I very, very seldom buy new things, unless they are replacing something else. Multi-purpose objects are preferred. Here is my current list. All of this fits in a single carry-on sized backpack. I never ever check in anything when I fly.