From Taiwan to Bali: How I Toured Asia, While Working as an Engineer for a Distributed Team

Feb 9, 2014 10 min readWorkplace of the future
Taiwan

In August I was given the amazing opportunity to join Buffer as a front-end developer. At that time I was living in Taipei teaching English. Buffer is a distributed company so while I coded for them I was able to continue teaching.

At the end of October, I left my teaching job because I just couldn’t do both jobs for much longer. It left me exhausted with no time for side-projects. With quitting the teaching job, my girlfriend and I couldn’t stay in Taiwan anymore due to work visas, so we planned a two-month South East Asia trip back home to South Africa.

Niel

Pictured: Rice fields on a land excursion while taking a boat cruise from Saigon into Cambodia

Getting to Asia from South Africa is far, so we wanted to use the opportunity to see more while we were in the vicinity. I also saw this an opportunity to try out the digital nomad lifestyle.

Here is a little about my experience traveling and working from hotels/resorts/villas all across South East Asia.

The Itinerary

Before I write about the work, here’s an overview of the itinerary:

  • Week 1: Taiwan, with three destinations (Hualien, Kaohsiung & Sun Moon Lake)
  • Week 2: Singapore detour & then Vietnam with two destinations (Hoi An & Saigon) and weekend boat cruise into Cambodia.
  • Week 3: Cambodia with two destinations (Phnom Penh and Siem Reap)
  • Week 4-6: Thailand with six destinations (Bangkok, Koh Yao Yai island, Phuket, Bangkok again, Pattaya, Pai Town, Chiang Mai)
  • Week 7: Macau
  • Week 8: Hong Kong
  • Week 9: Bali

Just a note: My path diverged with my girlfriend when I went back to Bangkok and then Pattaya for Buffer’s company retreat.

Buffer retreat Thailand
Pictured: Enjoying the skyline with part of the Buffer team in Bangkok

You’ll notice that the itinerary is very packed. In many places I’m only staying for two to three nights.

The Routine

When I was teaching English and doing development, I would wake up at around 6:00 a.m. and code until 12:00 to 2:00 p.m., depending on the time of my classes in the late afternoon. This allowed me to set up a routine of waking up early and getting stuff done before the day starts.

At busy times for Buffer, I would still do some coding after I got back from my teaching, at around 9:00 p.m. till 11:00 p.m.

On weekends I would still catch up with some work I felt needed to be handled before the next week started. Buffer is very relaxed in terms of deadlines. It trusts us to judge for ourselves on most deadlines.

This routine set me up nicely for having a disjointed day.

However, traveling was not as consistent as the work week in Taiwan. Often best flight times would be in the middle of the day, or there would be numerous delayed flights and many more complications that come with traveling. What about sightseeing too?

1-jaOPH0IAkxcoduJxb4L9_A

Pictured: Chilling with our tuk-tuk driver who drove us around Angkor Wat

I devised the following routine. Breaking up my day into chunks: Early morning, morning, afternoon, and evening.

Always: Early Morning session: 6:00 to 8:00 or 9:00 a.m. This is before grabbing breakfast. This allows me to get something done before the day starts.

Optional: Then at least two sessions during the day out of morning/afternoon/evening. So for example, I would head out after breakfast, do some sightseeing, then get back in the afternoon after lunch at about 2:00 or 3:00 p.m. then work until 10:00 or 11:00 p.m.

The times around these are flexible of course. But sometimes traveling would take longer than expected, and I would only get an early morning and one evening session in. So, I made the choice that weekends are fair game too, but with just a little less pressure.

I was in any case working on weekends as a teacher, so it was nothing new for me. In fact, I’ll probably work on weekends in some capacity when I settle back in South Africa. I really enjoy coding, so it’s a leisure activity for me too. I prefer the notion that your job should be a lifestyle not a chore. But more on that in the future.

So, how did the routine work out?

Quite nicely. The early morning wins really helped. However, the biggest issue with the move away from my Taiwan schedule was that my day was broken up even more. In Taiwan I would normally put in one really solid session in the day.

With the traveling, my day would be very irregular, even with the proposed routine. This was tough at first.It felt like my productivity was less, but I was probably doing more work than I did when I was a teacher.

The idea that work is tied to a solid regular work day is a tough one to override. I knew that my work time would be restricted, so I tended to focus more during the time that I had.

I’m definitely going to bring some of this routine with me back to Cape Town.

The Challenges

Besides the routine, there were various challenges linked to this crazy digital nomad lifestyle. Here were some of them and I how tried to work around it. These included development, personal ,and work related issues:

  1. Responsibility to Buffer
  2. Internet
  3. Traveling and working at the same time
  4. Coding with an irregular routine

1) Responsibility to Buffer

I’m really lucky to work for a forward-thinking company that allows me to work remotely but also grants me the autonomy and freedom to travel while I’m working.

However, I still have the responsibility to deliver on my work, regardless of where and how I spend my time.

Because Buffer is mostly a distributed company, most of the team is used to people not being around at an exact fixed schedule. There are no office hours. You only have an indication of when someone would be online due to their timezone. Some like to work in traditional work hours, but it’s up to you to decide when to work.

Vietnam workspace

Pictured: My desk in Hoi An (Vietnam). Stayed in a traditional style hotel. It looked nice, but not comfortable for working.

However, in saying this, communication becomes an important part of keeping things smooth. Predictability and communication form an interesting relationship. For example, I can expect Colin, one of our back-end developers to come online around a certain time during the week, because he lives in the UK. The same with other team members. Therefore I can predict their presence.

But what if something happens? Maybe they have an appointment in the afternoon, or something comes up. Then communication is needed. Let the team know that you’ll be away and catch up when you can.

For me then, communication is very important. Buffer places a lot of emphasis on this.

Before departing, I sent my whole team an email detailing my plans. When I was in Siem Reap, I sent the team an email ahead of time that I’ll be spending a day on a tour through Angkor Wat. When I was on a boat cruise into Cambodia, some part of it went into the Monday, so I let my team know that I’ll only be arriving late on the Monday.

Angkor Thom

Pictured: Cruising through Angkor Thom

In this sense, they can adapt and it also helps them predict my presence. And in most cases for distributed teams, this isn’t really a hindrance, because we’re already used to working with people online where we have to adapt to working on our own without their presence. For example in Taiwan, due to my teaching schedule, I hardly saw the other developers online.

Communication is paramount in my situation, which brings me to the next challenge.

2) Internet

Basic human needs

That is really how my needs are right now. My trip through South East Asia is not a backpacker-style trip. I aim for mid-range hotels with free wi-fi, but also try to get 3G on my phone in each country.

We use Hipchat at Buffer, among other amazing tools to keep in touch/sync. The great thing about Hipchat is the mobile version. I can be around the team at all times. This is both a blessing and a curse.

Hipchat break

Pictured: Chatting with my team on Hipchat while taking a swimming break

Because my schedule would be very unpredictable, I made sure that I could at least be contacted at any time. I remember on Koh Yao Yai Island, I would often take an after-breakfast swim at the pool, but then be on my phone responding to team messages and planning sync ups with team members after I get back.

In that sense, it makes life easy, but sometimes it’s hard to shut down. However, I see that as an interesting part of a distributed team, which I’ll write about in the future.

Macbook backup battery
Pictured: Using my MacBook as a backup battery for my phone while waiting during a flight delay

Generally the 3G and Wi-Fi was great and affordable in most countries. However, you do get situations, such as when I was in Thailand taking an overnight train to Chiang Mai from Bangkok, where the 3G was just getting knocked out too often to deploy code.

Found a plugin
Pictured: Waiting for our train to Chiang Mai from Bangkok. Found a plug between two freezers.

I had to ask other team members to deploy for me. And it was crunch time just before the Buffer for Business launch. It can be very stressful at times to keep thinking of connectivity.

Which brings me to the next challenge:

3) Traveling and working at the same time

I’m not really on a holiday. Some think so, but I’m not. A big part of my day is spent working (and thinking about when to work). But then I do sightseeing during the day and relax on beaches with cocktails. This lifestyle is a bit crazy. Especially on my itinerary. I wouldn’t even say this is a normal digital nomad lifestyle. Most people would stay in one place for at least a month, before moving on.

There are a lot of things that makes this “not your normal holiday” For example, I would gladly go for cheaper hotels if I was purely traveling, but because I need to work, I don’t want to spend energy on loud neighbors, things being stolen, or worrying about food poisoning—among other traveling annoyances.

Boat ride into Cambodia
Pictured: Taking the boat into Cambodia

At our hotel in Phnom Penh, we got unlucky with our booking. It was in a dodgy area and the hotel room felt like a jail cell. I felt drained. The environment had a big impact on me.

Luckily, culture shock was not an issue for me. Moving to Taiwan really set me up for adapting to life abroad. Things don’t faze me that much anymore. Sure, I’m creating a bit of a comfort bubble, but most of the time when out and about I don’t worry about the craziness—and South East Asia can get crazy.

Open mic night
Pictured: Playing an open mic with my twin brother in Phuket singing fake Afrikaans songs.

However, sometimes I do spend my way out of the crazy times and tough situations. It feels terrible stating it that way, but I chalk these up to travel expenses. Like taxi drivers who screw you over. It’s just not worth the time bargaining. Luckily, working and traveling allows me to have this budget available, because I’m earning as I’m spending.

As a minor divergence here, working at hotels can be amazing and also suck at the same time. I haven’t had a comfortable desk or chair in ages. And most desks aren’t high enough to sit at properly. A proper desk and chair is a luxury for me.

Cramped work desk
Pictured: My very cramped “desk” in Phnom Penh.

BUT, I get free breakfasts, speedy laundry, and my room gets cleaned. So there are advantages too.

4) Coding with an irregular routine

This one was the most interesting challenge, and in fact made me a better coder in the process.

Coders would know this all too well.

Coding

Oh boy. It happens a lot. But I’ve actively tried to remove myself from this situation while traveling. I would often have 30 minutes waiting for a flight, or an hour before check-out time. The ‘zone’ is just not achievable anymore.

Therefore, I’ve actively started coding with way more comments, super descriptive naming and an aim to make the code as modular as possible. I can’t afford to spend the time setting up to get myself into a zone. Some would argue this is how programmers should code, but being forced to break out really makes this a massive priority.

The forced downtime also allows me to think about the challenge at hand and often come to a better solution when I get back to coding.

What I’ve learned along the way

This interesting working/traveling experiment has taught me a lot: newfound abilities and boundaries of my coding, being more comfortable with myself regardless of my comfort zone and realizing more and more everyday how blessed I am to have this opportunity to work and travel at the same time. It was always a dream of mine to try the digital nomad life, and sure, my version of it is a bit chaotic, but I’m glad I got to experience it. It is definitely not for everyone. That I agree. I’m not sure I’m sold on it either.

Caricature

Pictured: Caricatures drawn of my girlfriend and I by an artist on a street in Bangkok

But hey, perhaps next time, I’ll spend a bit longer in one place. I’ll keep experimenting. I might never find the best balance, but I’m truly blessed to have this opportunity to figure it out as I go along.

Have you tried the digital nomad life? What have you found helps you work most productively and effectively? Please feel free to share your experiences here in the comments. I’d be keen to hear!

This post originally appeared on Medium. You can find more posts from our team in Buffer’s Medium collection.

Image credits: heeris.id.au

Brought to you by

Try Buffer for free

140,000+ small businesses like yours use Buffer to build their brand on social media every month

Get started now

Related Articles

Why and How We Close Buffer For The Last Week Of The Year

Every year since 2016 we've closed Buffer for a week at the end of the year. It’s like a reset, except across the whole company.

ai in content
OpenMar 14, 2024
How Buffer’s Content Team Uses AI

In this article, the Buffer Content team shares exactly how and where we use AI in our work.

OpenNov 9, 2023
Buffer is Remote but not Async-First, Here's Why

With so many years of being remote, we’ve experimented with communication a lot. One conversation that often comes up for remote companies is asynchronous (async) communication. Async just means that a discussion happens when it is convenient for participants. For example, if I record a Loom video for a teammate in another time zone, they can watch it when they’re online — this is async communication at its best. Some remote companies are async first. A few are even fully async with no live ca

140,000+ people like you use Buffer to build their brand on social media every month