At Toptal, we’re building a software product that aims to revolutionize team creation, contracting, and human resources. Our team is completely distributed: we have no office, and we work from all around the globe. And when I say “all around the globe”, I mean all around the globe: our internal staff consists of nearly 50 full-time individuals from Brazil, USA, Russia, Argentina, Czech Republic, Ukraine, Hungary, and more. This includes engineers, designers, recruiters, sales, and executives.
We all work from home, and we’re good at it: we’ve had countless Skype sessions, code reviews, feature iterations—all components in building a great product. We work hard, and we’ve been at it with as much fervor and energy as ever.
Earlier this year, we decided it was time to bring everyone together in the same location. We’ve had tremendous success as a distributed team. But regardless, we wanted to add an edge to our collaboration and creativity, and connect in-person. Our journey, the results that came of it, and the economics behind it are all explained thoroughly in the post that follows.
It all started with a conversation between Alexander (our CTO) and me in Ulyanovsk, Russia, about 1000 miles southeast of Moscow, where we were visiting a subset of our team that had come on fairly recently. (One of the benefits of working remotely: we’re not constrained by the local talent pool — we hire the best, no matter where they’re located.)
At the time, our dev team consisted of about a dozen people, including QA, design and engineering. We were quite in sync and held meetings every day (via Skype), though many of us had never met in person. Plus, as mentioned above, we’d recently hired about half of the team and it would be nice to meet everyone.
Naturally, much of our discussion during this visit focused on tightening collaboration, boosting morale, and improving coordination amongst our completely distributed team. And while we strongly believe that working in the same room doesn’t provide extraordinary productivity gains, we figured that it would be faster to sync up our new hires and build strong relationships if we were all together. At the very least, it would be a lot of fun.
On our way to lunch, walking along a completely dilapidated road, Alexander threw out an idea. “Well hey! Why don’t we just fly the whole team to Thailand!” he laughed. Without hesitation, I replied: “Yes. This is happening, 100%.” And so it began.
I got on the phone with my assistant and had her start hunting down properties. She found an absolutely stunning place—it really was remarkable: an eight-room villa in Phuket, Thailand, located at the highest point in the region, overlooking the city, sea and mountains. The view was just fantastic.
We also figured that we’d hire a chef to cook for us while we were there, and rent a car since the villa was somewhat removed from civilization. It was convenient, cost-effective, and certainly added to the experience.
On November 20th, we announced the trip to our team—they were completely ecstatic. To put this in perspective, we’d be bringing along engineers and designers from the Czech Republic, Brazil, Ukraine, and Russia, 80% of whom had never left their home countries or even owned passports. It was going to be the trip of their lives (and it certainly turned out to be). We decided to go away for a month, from January 8 to February 9.
Before I left for Thailand (from California), I purchased an iPhone 5 for each member of the team. I wanted everyone to have a 3G connection and a great mobile device—as a powerful phone goes a long way when working remotely. Plus, iPhones are significantly more expensive where most our team members live, so it was also a pretty big deal for them. I also purchased three new 15” Retina MacBook Pros for team members that didn’t have them—this unified us all on the hardware level and created a uniform dev environment.
You should have seen the reaction when airport security asked if I had any electronics inside my bags…
Following months of anticipation, we took off for Thailand on January 7th, 2013.
I was the first to land in Thailand and waited at the airport for our CTO and lead back-end engineer to arrive from Ukraine and Russia, respectively. Everyone else was coming in a bit later, so we left for the villa on our own.
It was amazing.
In fact, it was one of the most surreal settings I had ever seen in my life, and that remains true to this day.
When we arrived, our chef was already cooking a curry dish, which ended up being the most memorable Thai dish I’ve eaten. Afterwards, I fell asleep, only to wake up five hours later, after the rest of the team arrived. We introduced ourselves (in person), had a drink, and went (back, for me) to bed. The next day, it was on.
I’d kept the new Apple gear a surprise. So in the morning, while our chef was preparing breakfast, I took out 12 Toptal t-shirts and put the iPhones inside them.
I told everyone to wait until breakfast was ready, to keep the surprise intact. As you can imagine, it was an epic moment, and an amazing way to kick-off the trip.
Afterwards, we hit the ground running by writing code, reviewing designs, and making the best possible use of our time. We were all in this together with no way out (both physically and mentally), working our asses off to make the most beautiful product we could—and one that could scale our business. For the next 30 days, we pushed ourselves as hard as ever: beginning with a meeting at 11am, we’d work until 11pm, or even 4am, taking it a bit easier on the weekends. It was an extraordinarily productive few weeks.
Imagine moving your entire dev team to a remote villa, surrounded by paradise, miles away from the rest of civilization, and completely removed from external distractions. The productivity gains and the team building that came out of that isolation were massive.
To provide some breaks in the day, we’d hold regular tech talks given voluntarily by various team members. These ranged from an in-depth analysis of our code base to a two-hour discussion on the general vision of the company.
While we spent our weekdays on this hardcore development cycle, our weekends were simply a blast. About halfway through the trip, we all rented motorcycles. Our CTO ended up crashing, but it was so much fun that it’s hard to put into words: flying around on motorcycles—in Thailand—with elephants and islands all around us, it was just an amazing experience. Tennis, go-kart racing, and other exciting activities were up for grabs too.
While some of this might sound extravagant, we were heads down 90% of the time. Personally, I was busy raising money, recruiting for new positions, and checking in with the rest of our team distributed throughout the world to make sure that the operational, technical, and financial sides of the company were running smoothly. We actually ended up recruiting a key executive in Seattle (ex-Amazon/Cisco) and hiring some ex-McKinsey folks, all from Thailand via Skype.
With the amount of coffee (and beer) that was consumed, we came up with a bunch of creative ideas that enhanced our processes and engineering culture, the benefits of which carry through to this day. For example, while in Thailand we came up with a concept called Symmetry, which we believe—once open sourced—will forever change distributed coding teams (as it has ours). In short, Symmetry lets you ensure quality unit and manual testing for every commit and pull request that comes in through an automated, clever design. I don’t want to spend too much time on the concept itself, but the broader point is that we came up with an exceptional solution to a problem that’d been haunting us for a while; and we did it through collaboration. After several months of use, I can say that Symmetry has radically changed our workflow. We’ll soon be releasing it for other companies to leverage as well.
While all of this was amazing, we experienced two hiccups that I hadn’t anticipated. You’ll probably laugh at one, if not both of them, but they were very real.
The first problem is pretty obvious: Internet connectivity. While we had checked that the villa would have Internet, they didn’t tell us that it would be a 3G MiFi. We even asked in advance if the connection was “good and stable”, but it seems that we all have our own definition on that one. As you can imagine, a single 3G MiFi does not fly so well for 12 people, much less 12 developers working around the clock. We first tried to have a company install a superior connection, but that wasn’t very helpful. Eventually, we went ahead and bought a 3G card for each developer. Unfortunately, the only cards available were on a yearly plan, leaving us with about 11 months of extra Internet—but it was a necessary expenditure.
The second problem almost brought the trip to a halt. Actually, this particular problem can often bring the whole world to a halt. What could it be? Any guesses?
Girlfriends. Or wives, in some cases. That’s right. Most of the girlfriends (especially the Russian ones) were not okay with their significant other going away for more than two weeks, much less four. One of our engineers (whose name will go unspoken) was such a victim, and could only stay for the first half of the trip. Pretty much every single attendee asked if they could bring their girlfriend/wife for at least a week. But, alas, this was a company event, and the answer was no. Everyone acquiesced and, in the end, the biggest hurdle was surmounted.
Finally, this post certainly wouldn’t be complete without a quantitative and economic perspective of the trip. Let’s dive in.
The villa cost us about $14,000 for 29 days, which breaks down to about $40/night/person—very reasonable. We paid an additional $2,000 for other amenities (including our chef), which brought us to a total of $16,000 on accommodation and the like.
In addition, we paid for everyone’s plane ticket (round trip), which came in at around $14,000.
Finally, the Apple products cost precisely $15,886.69. But I’m going to exclude this from the total cost of our trip as this was a one-time purchase, and it wouldn’t make sense to bill it as a per-trip expenditure. Rather, it was a way to bring all our devs to a unified hardware level, on-par with what most “in office companies” provide to their own employees.
So, we’ll say that the trip cost about $28,000. You might be thinking: “Wow, that’s a lot of money! That’s crazy!”
But really, it’s not. Let’s think about how much the average office costs for most companies (of size comparable to Toptal). We’ll use San Francisco as an example. On average, we’re looking at $52 per sq ft for an office in the Financial District, and $38 per sq ft in Silicon Valley. General guidelines call for around 125-225 sq ft per person. To be conservative, then, we’ll bill our office at $40 per sq ft (annually), and 150 sq ft per person. As we took 12 people on this trip, lets keep that number for comparison.
Under the above assumptions, we can peg an office at $6,000/month, or $72,000/year. You could afford two of these month-long trips to paradise annually and you’d still be below the cost of an office ($56,000 vs. $72,000).
Plus, that office (usually) doesn’t come with private chefs and an exquisite palace on a tropical island.
The other notable factor is the amount of time we worked together: 11am – ~1am, 6 days/week. Not only were these long hours, but they were almost 100% distraction-free, barring a few ping pong matches; and lunch was served at the villa so that we didn’t have to leave for meals. To be generous, lets say there were two hours of interruptions per day.
That puts us at 12 hours of maximally productive work per day. At most offices, even if we’re working, say, 9- or 10-hour days, we’re probably looking at about 7 hours of solid work time, after interruptions—and only 5 days/week. That mean’s that we gained almost 40 hours of pure work time per week over the traditional office.
To make things more interesting, though, lets compare this to working remotely (our usual arrangement). In a fascinating discovery, we actually saw productivity gains after the trip (more on this below). It seemed that even though we were all in the same room, even two hours of distractions per day made a noticeable difference when compared to zero or one hour’s worth of distractions when working remotely, as uninterrupted and accumulated momentum often has a compounding effect when it comes to productivity. So even in our hyper-optimized physical environment, we were still not as strong as we could have been remotely in terms of raw output.
Breaking It Down
I’ve compiled all of these metrics into the following chart, which presents an overview of our findings.
The productivity gained and relationships formed on our trip were priceless, though the output is certainly economically quantifiable to a degree. In sum, $28,000 is really not so much for something like this, and if you plan on doing it two or three times a year, you make your investment back in spades.
Vis-à-Vis Remote Work
There’s also an extremely important observation that was acknowledged by almost everyone on the team. It’s an observation so important that I believe it should be made into a law. After the third week, we saw little-to-no additional collaboration occur relative to us working as a remote team. During the first couple of weeks, we were able to come up with new ideas, get synced up, and strengthen our relationships—but everything after that was down to execution. Yes, we discussed deadlines and did some paired programming, but the productivity gains from the last week were quite minimal. It was vividly clear, even obvious that we were more productive working remotely than we were during the final week in Thailand. How this impacts the economics of our development was, to me, a revelation.
However, it’s not just that our remote environment allowed us to be more productive than we were in Thailand. On top of that, it’s that our experiences in Thailand allowed us to be more productive when working remotely in the future. After several months of reflection, it’s easy for me to say that our time spent pair programming, giving and attending tech talks, and collaborating on new features and designs left a solid impression on our team. We learned how to work together and gained a better sense for our strengths and weakness. It was a lasting experience that connected our team on many interpersonal levels.
In the end, our trip was a massive success. We came up with some amazing ideas and concepts, got to know one another in person, and had a blast working as a team. It was nearly perfect.
As we returned to our respective homes, we hit the ground running with fresh ideas and a sense of awe. We had experienced something together that was so transformative, so unreal, that it would affect us not only for our time at Toptal, but for the rest of our lives.
The true value to come out of this trip wasn’t found in the features we designed or the code we wrote; it was in the culture we defined.
We’ll do it again. And again. And again.
Our next one-month trip will take place this October in Marrakesh, Morocco.