So I’m a traveling programmer. I used to work 40 hours a week with 20 days paid leave. But last year I quit by job, grabbed my sweetheart and took off to see the world.
I hear/read a lot these days about how programmers are treated unfairly, aren’t valued for what they do best, get taken advantage of, etc. But listen up fellow programmers, you have a gift, something that most other professionals can’t really have. You have flexibility. You can work remotely, you can freelance, and you can choose problems that you’d like to solve.
Time to pack those bags and write some code while sipping mojitos in the caribbean!
What?!
But.. but.. how will I advance my career ?
That’s a valid question, and definitely an important one. Doing small time contract work is probably not going to help you advance your career. However, through this post I hope to talk you through some of the obvious pitfalls and help you take the leap!
First and foremost – the question that is on everyone’s minds.
Money
You know what they say, it makes the world go round. So how does one approach the problem of making money while traveling ? Well, the good news is that unlike people who teach English abroad while working for minimum wage, programmers can actually work on challenging projects and assignments and gain some decent cashflow. You obviously need to balance the amount of work with your expenses but many countries are very affordable at hourly programmer rates.
Before you decide to leave on a jetplane, it’s a good idea to take on some freelance work on sites like oDesk and build up your resume on Linked In. This will help you get projects easily in the future without needing to seriously undercut other people’s prices (and your own living budget..).
Obviously, having highly sought after skills is great but no one said you can live the dream while being lousy at what you do ;)
I’m sure you, the reader, are a smart person and have by now grasped the idea of making money while freelancing programmer projects. So lets move onto the next important question.
But… what if I lose my skills ?
This is challenging. What if your freelance work doesn’t push you quite as much as your day job ? Open source!
There is no dearth of open source projects that you can contribute to. Not only that, but Stackoverflow is a great place where you can spend time building your profile and reputation while solving problems and helping people out.
I used to think that open source projects were only for very experienced and highly qualified developers. No! The beauty of open source is that you can take the initiative to start something and more often than not, other people with ideas/experience/mad-skillz will be more than happy to help you out and contribute to your initiatives.
Here’s a good example. I’m no javascript guru. I’ve been comfortable with jQuery for a while but if you asked me how IE6 handles X function as opposed to Firefox, I wouldn’t be able to answer. The other day I came up with a nice solution to make some ads asynchronous. I decided to put it up on github. Just a few hours later a very experienced javascript developer made some tweaks (removed the jQuery dependency from my solution) and submitted a pull request. That felt awesome!
The point that I’m trying to make here is that open source projects are available at every stage and every level, especially on platforms like github. It’s easy to start contributing to some and to be honest, you might even enjoy it! :)
Other than open source projects, it’s up to you to pick challenging/rewarding projects to work on while you travel, so make sure you pick stuff that appeals to you and moves you forward in some way. As an example, I wanted to learn backbone.js and recently picked up a project where I got to do exactly that!
Reading hackernews or reddit’s r/programming regularly also helps you stay abreast with what’s new in the scene. It’s also great to continue doing things that you did at your day job anyway ;)
Career Advancement
Alright, so you probably aren’t going to learn many managerial skills or gain a scrum master certification while traveling. However, working on multiple projects, contributing to open source, having an awesome stack overflow profile, will definitely get you noticed. Also, the fact that you traveled and interacted with different cultures, learnt new things and didn’t turn into a complete bum probably bodes well for you!
Poor Internet Access
There’s nothing to worry about. Unless you plan to go to extremely remote locations (Easter Island..) or Cuba (bad internet..) – you’ll be fine. Internet access is available in almost every country. You’ll have access to WiFi and 3G in most places. My personal strategy is to buy a pre-paid sim card with 3G access in every country that I visit. I haven’t been disappointed this far. I even write reviews about them.
Time Management
But shouldn’t I be traveling ? Well, you are traveling! If you could work 40 hours a week while spending 2 hours a day commuting or work 20 hours a week while surfing in the morning and dancing salsa at night – what would you choose ?
I’ve done a cost analysis on my stay in Mexico and we got by with just $900/month per person.
Of-course, it’s important to manage your time well and make the most of both worlds. But this is where modern technology comes in. I use Wunderlist to manage my To-Dos, Boxcar to get my email notifications (for all my email addresses), and a number of other apps/programs to keep track of what I need to do.
Availability
Things like availability, reachability, etc. are minor issues as long as you don’t end up in extremely remote locations. I have pingdom setup to monitor all my servers, Skype forwarded to my local number in each country, and many other ways of being available and reachable, just like I am locally.
Gear
Yeah, you have this going for you. What kind of gear do you really need ? Well, I just have a tiny 1kg Macbook Air and that’s really ALL I NEED >< Seriously, even a traveling musician needs more gear than you. So quit bitching and get on a plane already!
It takes a while getting used to doing this and I suggest you set off with some savings. I can’t think of any other profession that has the kind of flexibility with the kind of rates, that programmers can have today. Almost everyone I know wants to see more of the world that we live in.
It makes total sense to take advantage of your perks and see the world while you can!
So don’t hesitate, time for a leap of faith!
If you are interested in mastering, in many things, the best position is rarely the one that affords you the most freedom to do other things.
It doesn’t really matter if this is the accumulation of wealth, knowledge or even virtue. Most dedicated pursuits tie you down.
I think that if you a burning to travel and experience the world for it’s own sake then the advise from this post is for you.
If on the other hand you are trying to get set up to have a family and afford your responsibilities, accumulate knowledge, or get really good at something, then “do it whilst you travel” is bad advise.
You’re absolutely right about the fact that mastery requires dedication and perseverance. However, the idea that I was aiming at in this post was the fact that programmers can take a 1-2-3 year hiatus and don’t necessarily have to return and start from square 1. I truly believe that this is a powerful advantage that more of us should come to realize!
Regarding the second half of your post, I even hinted at this in my last line. Do this while you can, meaning: While you’re young, while you don’t have old parents to take care of or kids to send to college, while the 2nd dotcom bust hasn’t happened, etc. ;)
It’s the dream of every programmer. Some take the leap of faith, some don’t.
I am all in to take it. :D
Great post. I have also been freelancing as I travel and am keen to hear from others with this lifestyle.
How long do you plan to travel for?
Awesome! Great to see that other folks are doing this too! We’ve been on the road for 9 months now so I plan to travel for another 2 months or so before I take a break for a bit (gotta go see our families and stuff :D).
How long have you been on the road ? Would love to hear more about your story!
I’ve done a few 3-4 month trips and then returned home (Australia) between.
What does your partner do while you’re working?
She’s basically working on this website, trying to get traffic to it and eventually making some extra money so that we can both fund our travels. It’s easy for me since I can work remotely and that’s what inspired this post. She used to work in TV Production and there isn’t much she can do apart from sell stock footage and that itself isn’t really fun/satisfying. So we’re still working on some efforts for sustainable travel for the both of us :)
Great ideas!
Finding myself further bogged down with commitments that require me in person, but I love the idea. Hopefully I’ll be able to more to something more like this in the future.
Thanks for the inspiration.
Hi,
I’ve been doing the same thing. I go around with a MacBook Pro 13″, bit heavier than an Air, but the added storage space makes it easier. Another great way to have clients on the road, is to make attempt to get jobs out of people who you already know and who trust you. Some clients give me rates that I would never get on oDesk, which makes four hour workweeks definitely feasible. O, and while you’re there, try learning a new human language, so much fun.
A great first destination would be South-East Asia, wifi everywhere and you can survive on about $30 USD a day. Less if you live in dorms and stick to $2 USD meals.
Always tell your clients you’re abroad, you’ll be their awesome developer on the other side of the globe. That’ll only lead to more clients.
Black background doesn’t make it cool, just annoying…
Because that comment is relevant to the conversation. If you have a problem with it, there are plenty of options that don’t make you a jerk.
1 – Use greasemonkey to change it locally
2 – Contact the site owner directly
3 – Chill out
4 – Offer a different color scheme and give the css code
5 – Copy it to word or notepad to read
I doubt that you even read the article or even skimmed it over. Try comments about the actual topic.
You left out the important bit – where do you get new work from? Every freelancing site I have ever seen leaves me competing with eastern europeans or indians at really low rates that are just not worthwhile; that or I end up putting in hours of work and never getting paid. Every time I move job (every 2 -3 years or so) I ask about telecommuting (even just part-time telecommuting) and I am always told absolutely not. So theres online services where you make little to no money or don’t get paid, and full-time jobs that don’t allow telecommuting. You mention LinkedIn – all I ever get there is messages from recruiters seeking completely different work skills than on my profile. You also mention oDesk – all I’m seeing is the same “lets compete with guys in 3rd world countries” jobs. So how are you actually making it work?
Specialize in an area with less competition, for example mobile apps. Mine is web scraping.
There are plenty of clients around who are time poor and will pay more for a native speaker they can rely on.
Also try Elance – I found the quality of clients is better than oDesk.
You’re right in that there is a lot of competition on sites like oDesk for rates. Also, my personal approach is to take on projects that I find genuinely interesting as that helps me give my best.
Another commenter above mentioned that a better way to get clients is through contacts or people who already know you/trust you. This is really the best advice you can get. There are plenty of startups, etc. that do require web/programming work done. They have two options:
1. Hire someone in house. (expensive if you factor in salary, benefits, and the cost of hiring as well..).
2. Hire a freelancer. (expensive because freelance rates are quite high..)
3. Outsource it. (a bad choice because code quality for these kind of gigs is very sketchy)
4. Get someone you trust to do it (so a compromise between freelance and hire)
I’ve been approached several times by people who say things like “Hey, I’m looking for someone to do (insert programming related thing). Do you know anyone ?”
These people know about oDesk, etc. but want to pay a bit more to get something a lot better. These are the kind of people you need to find/connect with. When I said LinkedIn, I meant that you should keep your profile up to date and add any projects that you do over there. Also, add people who you work with on freelance projects as connections. Get references/recommendations from these people. This will help you score future gigs with much greater ease. That’s what Linked in is for.
Telecommuting unfortunately is a tough choice for organizations that have a “I want him here under my nose” mentality. It’s also difficult to manage an office where 10 people are present from 9-5 and 2 people telecommute. Furthermore, you’re already at a disadvantage if you’ve appeared for multiple job interviews where it was “kind of” made clear that it’s a 9-5 gig.
Some startups will gladly pay you $1k-$2k per month as a retainer for taking care of their tech needs. This is the kind of avenue you need to explore. Just an idea.
I guess there are many more points I want to bring out, I might do another post with how exactly you can score gigs while traveling :)
Thanks for sharing! By the way, I really like your site :)
I have to say thanks for writing this article. Your statement about programmers being overworked is ignored by a lot of companies… maybe too much technical debt, or due to lack of IT management. But I think the solution (and what you’re saying) is we need to manage our own career.
I just made a major move to a new city with the hopes of finding a broader community of tech that will lead me to eventually work virtually. I find decent clients (the ones who will treat projects seriously) aren’t opened to you working virtually (they deal with the issues of virtual teams). But you’re right… finding the community is the way to programmer nirvana (working remotely). Also us developers need also need to challenge and encourage other programmers to keep this concept fresh in our heads. I’m not suggesting a kumbaya or tony robbins group for programmers but way too many flame wars in tech, pissy fits, and friggn’ comments about how someone’s grammer stinks (we’re math junkies not grammer hippies dammit).
Congrats on making the move! I do hope you find greener pastures and better working conditions.
I do think that a lot of programmers tend to undervalue themselves. However, from a business perspective – it’s very difficult to measure programmer performance. Business people don’t understand “that coding thing”. Unfortunately, for them to ask for feature X (no matter how complicated) and have it implemented on time and done well, is only part of the equation. It’s because they can’t look at “the code” and understand if it’s done well or not, and looking at the final product isn’t always enough because there are always Y & Z things that ALSO could’ve made it in. Their perspective is “Oh he delivered X on time and made it look easy, maybe he could’ve even done Y & Z in the same time frame”. This goes on forever until programmers are dying under pressure from feature requests.
I think programmers need to value themselves and start working with people who value them. (or at-least have a basic understanding of what they do). I’d say that anyone who says something along the lines of “Dude you do that coding thing and I’ll do that marketing thing” is a red flag. Run, and run fast! :)
You forgot the most important thing.
Programmers from outside of EU/USA can’t go anywhere because they have to get a visa to enter every stupid little country. Unless you attempt to work on a tourist visa which is a violation of regulations.
I am from outside EU/USA and have had no problem freelancing on a tourist visa in many countries. It is all online so how could they even know.
How could I forget that ? I’m not from the EU/USA. In fact we have a huge section on this site about my struggles with various visas.
Pingback: Programmers have it easy! | Nomadic Analyst
You make some very valid points. Unfortunately it’s not that easy to take a leap of faith and do this if you require health benefits. Freelancing and paying for health benefits/self employment tax while traveling is a major killer.
I see you have a Macbook Air 11. I’m a programmer and I’m thinking about picking one up. Could I ask how you program on such a small laptop? What’s your setup?
Hi David
I used to use a 23” external monitor, keyboard and mouse/trackpad. However, I realized that I didn’t really need all these things to be effective. Sure, it slows me down a bit especially when I need to test something (2 screens does increase productivity!) but the tradeoff is well worth it. As far as resolution is concerned the 11” Macbook Air has a 720p screen and since I do web development, I’m rarely working on anything for a resolution greater than 1280x1024px.
As far as editors are concerned I use a combination of vim and textmate so that works fine. I have a local setup with PHP/Apache/nginx/mysql/postgresql/memcached/uwsgi/etc.
Programming on the go hasn’t been a problem so far, in fact, I’ve written some of the best code of my life on the go with a tiny laptop – there’s a lot of time to think and mull over problems on long bus rides cross country ;)
When it is necessary I do use DisplayPad to extend my Mac’s desktop to my iPad so I get an addition 1024x768px of screen real estate (I have an iPad 2).
So in conclusion, the small form factor and light weight (it’s almost the same weight as an iPad) of the Macbook Air is actually well worth the tradeoff in terms of size. I had my system upgraded when I bought it so it’s an i7, 256GB SSD, 8GB RAM.
Hope this helps you make your decision :D
I am starting my first contract position next week. It’s a 3 month position, and after it’s over my wife and I plan on traveling for a few months. I wasn’t planning on doing any work while abroad, but this post has me thinking twice. Great post, I’ll have to check back in a few months and let you know how it went.
Pingback: [转]程序员们,到了背起你的行囊的时候了! » 了解并拥有
Pingback: 程序员们,到了背起你的行囊的时候了! | 博客 - 伯乐在线
Pingback: A, Bee & Z | Backpack Me
Pingback: 12 Most Popular Posts of 2012! | Backpack Me
Excellent post! Really like it. It’ll be amazing if more details is shared
Any advice for aspiring or beginning coders/website designers? This post seems suited for the good to great coders from what I gather. While my skills are pretty much limited to cleverly manipulating WordPress sites I would love to do more advanced stuff which would give me greater flexibility to be able to pull this off. What are some essential languages to learn that would be a great start to becoming a “traveling-coder” ?
Hi Paul,
That’s a great question. Well, to be honest, manipulating wordpress sites is big business. If you can write a few wordpress plugins that are useful, that gives you a pretty great jumping off point as I know several coders who are making money doing this (they aren’t traveling coders though ;)).
I wouldn’t say that there are any essential languages as programmers have to pretty much adapt with the job at hand. Sometimes we’re writing something in high level languages like Python and at other times we’re debugging machine code. However, doing work on the web is usually sought after these days so if you pick up a web framework like RoR or Django then you could get some freelance gigs on the move. Alternatively, front end developers are also in great demand so if you get good at CSS/HTML+Basic Design then you could make some pretty pages for people on the move. There’s plenty of free lance work available however there is a high possibility of getting undercut in wages on sites like elance, etc.
Ideally, if you learn largely used tech like RoR or Django or Sinatra, you should be able to get a full time gig where you can telecommute. The folks at Buffer have several programmers who do this – for example. It’s an interesting lifestyle choice and very 21st century so don’t expect everyone to relate to it :)
Pingback: I became a digital nomad, it has it’s challenges – but it’s worth it! | Backpack Me
As a software engineering student at University, your website has inspired me to travel the world and do as you do… at some point. I am worried about my loans though, I will be 30k in debt upon graduation, but I really don’t want to work 40 hours a week at a soulless corporation wasting my skills on projects I don’t want to work on. Do you know of any way I can pay my loans and still be a travelling programmer?
Well, this is tough. Debt is always something that’s a source of stress. Honestly, I’d suggest that you DO work at a company (try getting into one that’s not quite as soulless – they are out there!), gain some work experience and pay off your debt. Start building some freelance contacts+savings and THEN head out. This will also have the positive effect of you being able to bill your work at a good rate because a) you’ll have more experience b) you’ll be more confident in commanding what you deserve.
If you can start scoring freelance gigs while you’re in college and then continue with those at a later stage then it’s certainly possible to travel and pay off your loans at the same time. However, the risk will probably keep you under a bit of pressure so you may not feel 100% comfortable.
Hope this helps! Let me know if you have any other questions!
Do you have some wort of map showing your progression around the world?
Is this something you recommend for singles?
I imagine you travel mostly by air, is that right? What airlines do you use?
Yes, we do indeed have a map! It’s here: http://bkpk.me/travel-plans/
Singles can certainly travel as it’s easy to meet up with people in other places.
We use the cheapest airline possible for every stretch. I’ve written quite a few articles about scoring the cheapest airline tickets so that you can save a big chunk of your travel budget:
http://bkpk.me/get-crazy-deals-flights/
http://bkpk.me/the-realtime-flightfox-review/
It’s nice to read about travelling developers, good luck for your “exploring” :D
I’m a kind of nomadic developer too, even if I like to stay at the same place for a little longer (3 to 6 month). I really like the idea of “living” in a new place from time to time. When you stay in the same place long enough you get to know a bunch if things that you wouldn’t with a shorter time. You’re right when you say that we, as developers, have the greatest gift: “flexibility”. It is really a shame that so many developers didn’t realize this. I guess there are many different ways to travel while coding. My experience is quite different than yours, I’m working with the same team for 2 years now and I’m trying to stay in GTM+2 / -2 timezone to avoid communication issues (but this is not restricting me yet). I like to work with the same team for a long time and I found the way to travel without loosing this. I guess the point is that everyone can found his way for travelling. There so many opportunities out there, you just have to grab the right one.
Maybe we should create some kind of “home exchange” for developers :D I have an home that is empty for 6 months every year, and I have a comfortable office in it, a decent connection and everything a freelance would need to work (because I use that stuff to work).
Btw, I think you really are inspiring many developers who read your posts and I think this is a really good thing, keep doing it :D
We’ve been doing the same for about 14 months, so it is interesting to compare your experience with ours. I am doing some web and social media projects, and my partner is a “heavy-duty” programmer. We prefer to stay in one place for longer periods (3-6 months) depending on visa limitations, plus, when working on a lengthy project moving from place to place distracts and lowers productivity (as we learned from personal experience).
I mostly agree with everything you wrote, but there are couple things that were different in our case:
1. despite popular belief, a fast reliable internet connection is not something to be taking for granted. In Amsterdam it was perfect, in Estonia (in a small town far from Tallinn) it was non-existent, in Chiang Mai it’s intermittent (when it’s up it’s great, but it goes down quite often)…
2. oDesk and Elance are not the best places to look for projects for an experienced developer. It is impossible to beat Indian/Eastern European rates( the quality of some work they produce for such ridiculously low prices is questionable though). Good old networking produced far better results so far. It would be great to disocver a reliable online source of projects with fair rates, but I haven’t found one yet.
Cheers
Cheers!
What if I dont know any programming, can I still do this? What should i do to get to a skill level thats freelance-able? how long would it take?
Thanks
Hey, cool to find your site, I’m also a brand new digital nomad! I’ve decided around new years 2013 that I’ve had enough of the Canadian winter and working 9-5, so I got a contract gig and decided to pack my bags towards warmer lands! I’ve since finished my contract and am now simply learning and working towards my first iOS game. It’s been an adventure! I’m 4 months in my nomadic lifestyle and it’s great! I’m planning to return home in a couple of weeks and then in a month or so head out potentially somewhere in Asia. I’ve been able to visit places I’ve never been. I keep a blog just like you at http://victorbstan.tumblr.com/. Good luck and thanks for sharing!
Thanks for giving us an insight in your way of life, I really hope to pull this of in a few years myself, right now I’m still getting my bachelor’s degree in computer science, so I’m stuck at one place at the moment =). Whis you the very best for your future!
Pingback: Web Programming Blog
Thanks for giving us an insight in your way of life,
Hi Ashray,
That is an awesome post by you for the people like me who wants to travel all around the world. I am an Internet Marketer doing SEO/SMO and I am planning to travel by doing freelancing like you. Could you give me some good suggesstions?
Cheers!
Thanks for the shout out! Good, write up. Posts like this really help preppie contribute and understand the flow of the project.