In the beginning there were two… co-founders, that is. Andrew and Kurt started the company together and were committed to sticking it out and building a company here in New York City. Once they got the product past the MVP phase and sorted out the first round of funding, they set out to hire the best developers they knew, first one then another then a Customer Success person and some more developers after that.
According to Kurt, “We always kind of knew that given the fact that we use Clojure, which is a bit of an esoteric language, we’d probably be able to hire better people if we cast a very wide net.”
While “Silicon Alley” boasts many well-respected software companies and a growing community of tech workers, the talent pool in the city is simply smaller than in the more prestigious technology centers to our west.
That said, for the first year or so, we were able to find the people we needed to scale up the team right here in New York City. Our team was small and operated out of one tiny office that eventually filled and found us nearly crawling over each other to get in and out. We moved to a new office and then grew a bit more.
Things were going well, but NYC being the gritty place that it is, it wasn’t long before one person on our team mentioned that he was looking into moving away.
When posed with the challenge of either having a remote team or letting go of such a skilled developer (who is also a person we all love working with!), the choice was easy.
We’d keep him by letting him go remote.
A nervous feeling permeated the office as we built up to the departure of our first offsite employee. While we felt confident that it could go well, we worried about how the environment would change and what might be lost.
Ahead of his departure we instituted a daily standup meeting so there was a set time every day for all of us to see each other, share status/blockers, and schedule followups.
Not soon after that first teammate left, another teammate decided to move, this time it was to another country on the opposite side of the globe. Though it felt riskier because of how far it was, we again decided to keep that person on board.
Some of us had experience working with geographically-dispersed teams, but the majority of us did not. We weren’t quite sure how it would go and were worried it wouldn’t work at all. But for the sake of keeping the band together, we decided it was worth a shot.
The daily standup, which was put in place while everyone was still working from the office, continued as people became geographically-dispersed. Our efforts were aided by the use of Google Hangouts (now Google Meet) and a Chromebox kitted out with a webcam and a Jabra speaker.
The majority of us are still in NYC, so here at HQ we crowd around “the standup box” while the folks at home are on their laptops.
It hasn’t been totally easy. There were many things that were a LOT easier to do in person. Grabbing people in the hallway to discuss a tough issue or review a small pull request is better and simpler in person. Also, it is much easier to build a cohesive team culture when people have personal relationships borne of occupying the same space and (sharing the same commute woes!) day in and day out.
We’ve had to bridge some time zone issues. One of our developers is in Australia and ends up having to work really strange hours, and still doesn’t totally overlap with our working day.
On a positive note, the time difference means we gain a few more hours of business productivity (we sleep, he codes!), on the other hand it is sometimes difficult when you realize you want to chat with him about something and have to wait until the following day.
We also haven’t found a great solution to whiteboard remotely. It is a practice that was/is really productive for us, but has been sacrificed for the greater good of growing our team by hiring great people who happen to live further afield.
There have also been a great many plusses of having a remote team. The fact that many on our team work remotely makes it easy for those of us here in NYC to also have some flexibility to either work from home or from a more remote location.
We also try to err on the side of recording information in a place where everyone can access it and we try to make sure every meeting has a remote option included by default in case a person has something come up and finds they have to join from an unexpected location.
Also on the topic of our dear Aussie, it has actually been beneficial to have a teammate in a far flung foreign location to point out little things we wouldn’t notice, like timezone irregularities. We also just appreciate the different (dare I say “upside down”?) cultural perspective.
Over the past year and a half or so of having a geographically-distributed team, we’ve experimented with many tools to make our remote team work and these are the ones we’ve landed on so far:
This is our primary form of communication and collaboration. Everything we are working on or considering working on lives in our Clubhouse, and we try to use it to discuss, record meetings, and capture all our decisions.
We use Google Meet to do our Daily Standup and also planned discussions. We are still working to make the standup work for remote and HQ people alike. Sometimes someone in HQ (usually me!) will make a side comment and while it feels natural in an all in-person setting it is a distraction when doing a virtual meeting that the remote folks can’t hear. We also still need to find a webcam that has a wide enough lens to capture all of us in HQ in the frame!
We use this for chatting amongst particularly sub-teams, making announcements, and also general chit-chat. We maintain a #water-cooler channel where people can throw in cool articles they read, funny links, and silly GIFs. We also use the screensharing and phone call features to drop into a video call when we want to have a more in-depth discussion on the fly.
We also maintain many channels to track deploy, builds, errors, and anything anyone would want to know about how our production is ticking.
Our team does a fair amount of pairing on hairy coding tasks and this tool makes it a bit easier since everyone can type and click on the same screen. That clicking is really handy when you can’t just point!
While we are still figuring out how to bridge the gap and keep the team in sync; we are still a very functional and highly productive team. Features get pushed out, bugs get squashed, and we all get along very well.
We’ve accepted that — in some ways — there is no substitute for all being in the same place, so we are trying to get into a regular cadence of doing staff all-hands weeks. We’ve done one all-hands week so far and it was a great opportunity for everyone to work alongside each other, grab a meal or a drink together, and finally get in some much-coveted white-boarding time!
Let us know how it works for you. Oh, and if you’re looking for a tool to get everyone on the same page (even when they aren’t in the same timezone), try Clubhouse free today!