GitLab is a fully remote company, meaning that all of us (currently six) work 100% of our time from home or any other place in the world. We're not the first to do this, Wordpress does it on a much larger scale, but it might be nice for high-growth startups to see how we handle it. It doesn't require as much tools or effort as you might think.
Currently we're based in Ukraine (1), Serbia (1) and The Netherlands (4).
Every morning at 8:00 CET (note: you have to know your timezones working remotely) we have a morning meeting with the whole team. Nowadays we use vLine for this, as Google Hangouts was unreliable with more than four people.
We keep an agenda in Google Docs, and limit it to 45 minutes. Anyone can add anything on the agenda. Every call starts with a round of 'What did you do yesterday?', where everyone tells what they did after work; almost always worth some laughs. Next we go over the points and note in the agenda what the follow-up is for each item. In depth discussions are moved to later or after the call with only the relevant participants, rather than having three people doze off while the rest talks about webserver worker optimization.
People are free to choose when to work, but most of us work during regular office hours. The flexibility that remote working brings makes that we don't have to worry about living life at the end of the day. This is a daily sight in our Slack:
Everyone in GitLab actually goes to a gym, does some kind of dancing or sports in another way. As it is with a startup, there is always a lot of work to do today and more tomorrow. We find that it works best to work when you work best.
We prefer asynchronous communication and specifically GitLab issues. By mentioning someone, that person can reply whenever they have time to reply. It's usually not a good idea to interrupt someone.
For all other communication we use Slack and one of the video call platforms, such as Google Hangouts, Skype and vLine. For communication with our customers, we do the exact same thing.
Social and Happiness
Every single week, everyone talks individually with Sytse (GitLab CEO) about their happiness. He makes sure everyone is happy and not lacking anything. That works really well.
Besides the morning meetings and weekly calls with Sytse, we also meet up in the physical world to work or -more frequently- eat and drink together. If we can't meet in person, we have a hangout online. With every release of GitLab (22nd of each month!) we have a call together where everyone gets their favorite drink and we just have some -remote- fun together.
Working remotely, at least for GitLab, is quite a lot of fun.