Tales of the Travelling Programmer, Part One
I travel a lot. I work remotely, which I think describes what was once known as “telecommuting” much better than “working from home”. “Working from home” no longer feels like an adequate description for those of us who also work from airports, cafes, co-working joints, friend’s houses, and even parks. If you’ve ever read anything from 37signals, you’ve likely heard all about the virtues of working remotely: why it leads to better productivity; how it results in less disruption; that you’re an utter fool if your team isn’t distributed across nine continents. I largely agree with their viewpoint and admit they’re one of the reasons I became so interested in working remotely.
But what about the hows of working remotely?
Yes, there’s IRC and email and Skype and GitHub and everything in-between, but what about all the non-technical aspects of remote work? What about when you’re ready to take working remotely to the next level: travelling to a foreign place while still being productive. Well, I spent the past five months without a permanent residence of my own, travelling around the globe while still working. I’ve since made Montreal, Canada my home, but in-between I went to some of my favourite cities and to places I had never been before.
All while still committing code to Mozilla’s webdev projects.
Last January, I started what would unknowingly be a streak of adventures by packing up everything I owned into a tiny car and parking it in a friend’s driveway, then hopping onto a plane to Bangkok, Thailand. At the time I was living in Halifax, Canada, and it took three planes and over thirty-five hours in transit to get to Bangkok’s humongous airport.
I was very fortunately greeted by a friend who helped me get into town, but I was pretty exhausted after that journey. Although not jet-lagged, I was mentally exhausted for the next few days taking in the sites; adjusting to the language, heat, and commotion; and just generally feeling quite out-of-place. Although going from an American to Western European city might not feel too different, heading from Canada to Thailand was crazy taxing. That brings me to my first point:
Catch Your Breath
Even if you’re only going from Los Angeles to London: give yourself a day or two to get re-adjusted and confident in your surroundings. Working outside an office can mean less distractions — but if you plop yourself down in a foreign place with zero knowledge of it, you’re going to feel bombarded by absolutely everything around you. It’s going to be like Innotech if there were 100 Lumberghs.
Take a break and allow yourself to be wowed by your new environment before smashing your head against that redesign you’ve been struggling with the past week.
Once you have mobile data you can still do things like reply to email, chat with coworkers, and even attend Skype meetings, but don’t try to get down and code like crazy your first day in a new place. Get confident that you have a sense of where you are on a map, a bit about how transit there works, and what the social norms are around remote working where you are.
For instance, in Bangkok it was pretty hard to just walk into a random cafe and connect to their free wifi; there were remarkably few cafes in my area at all! Starbucks is a safe choice for a quick coffee and wifi in North America, but the Starbucks in Bangkok had pay-per-minute wifi. If you take what you know about home, try to apply it to a foreign place, and start working immediately: you’re gonna have a bad time.
By getting to know my neighbourhood, I found an English-friendly cafe with unlimited wifi and power outlets I could frequent. Aces.
Get Mobile Data
Don’t feel disconnected when you’re already in a foreign place. Usually people look for ways to disconnect and not be tethered to their smartphone and work; when you’re far away from “home”, you’re going to have the opposite problem. Either pick up a cheap unlocked Android phone or get a factory-unlocked phone and a prepaid data plan. Fretting over not being able to speak a language is hard enough; don’t fret over your Internet connection or you will go insane.
Make sure everyone you regularly work with knows where you’re going to be, and make sure they know well in advance (whenever is possible). If your coworkers expect you to be working on Atlantic Time and find out you’re suddenly on Indochina Time: it’s going to be a bit jarring. Try to alert people with where you’re headed a few weeks in advance, when you’ll be available, and how to reach you. If you’re going to be so far away timezone-wise that you may not be able to instantly reply at points – spend a few extra minutes on every email and communicate very clearly what you mean. This is especially true for code reviews: be very thorough and explicit; if you aren’t clear and can reply in five minutes on IRC it’s great, but if it’s going to be another ten hours please be clear.
Letting people know where you are and asking them to overcommunciate to you can help lots too; there’s nothing worse than wasting a day (or at least leaving a project in neglect for a day) because you need to wait for follow-up from someone fifteen hours away.
Don’t Visit The Resort
If you’re going to try your hand at travelling and working, don’t try to recreate the environment you have at home in a foreign place. It’s not going to work: you’ll either fail practically (because you can’t recreate it) or you will fail at travelling (because you spent so much time making Bangkok feel like Boston).
There are some travellers who visit Bangkok and never venture outside its very tourist-friendly “downtown”, but things there – like any tourist-y area – are as pricey there as in the West. There’s nothing wrong with visiting an expat pub once or twice, even if just to see how the locals interpret bangers and mash, but if you want accommodations like you’re used to at home: stay home!
An example: I spent last May in Barcelona, where free wifi at cafes simply did not exist. Even Starbucks had a convoluted system that gave you forty-five minutes of wifi ’til you were kicked off the network until you ordered another coffee. That works out to about $4/hour for wifi, not to mention a serious over-caffination problem after a few hours. But working from my apartment wasn’t always ideal, especially as Internet speeds there were a bit lousy.
I don’t frequent co-working spots where I live but in Barcelona: co-working offered the best Internet in terms of both price and speed. Mobile data was expensive and slow in Barcelona, so I decided to work from a local Barcelona co-working joint: Domènech 7. It was perfect: I got to experience co-working as it was done in Barcelona, meet cool locals (including one who is visiting Montreal this summer), and have a swell place to work out of. There are lots of things that are stressful about travel: don’t make your Internet connection one of them. Trust me.
Enough to Get Off the Ground
I think working remotely while travelling can be a really rewarding experience: it forces you to think outside the box about communication – if you’re fourteen time zones away from all your coworkers, will daily Skype standups still work? Were they ever the optimum method of communication in the first place?
Switching up your environment and routines can be a great way to find weak spots. They could be with yourself or with your process; it could even be you discover you’re operating under some assumptions you just take for granted. For a community-driven, distributed, and open source organization like Mozilla, or even for Webdev as its own entity, it’s important to take stock of how you work; for some things: it’s the only way you’ll ever get better at it.
I really hope this post has sparked your interest in travelling and working — after all: it’s really quite fun. For those of you already interested: I hope this has convinced you that it’s more doable than you think.
Next time I’ll blog about some of the lessons I learned about my own and my teams’ workflows: what worked, what didn’t, and how we improved things for remote workers in any timezone.
Until then: การเดินทางที่สนุก!