For the last 10 months I’ve been working on a remote team of 30+ engineers and additional non-engineering teammates. We make it work quite well and I want to share some of the secrets for making it work.
Buy-In Requires Everyone
Structure all activities with the expectation that part of the team will be remote: meetings, sales peptalks, tech reviews, coding training, etc.
Encourage all staff to work from home 1x or more per week. This sets the tone and builds a shared understanding of how to communicate when you can’t walk into someone’s office.
Implement tools that support remote work, this means a central chat system, voice/video conferencing, screensharing solutions, etc. We use a combination of:
- skype (phasing out)
- HipChat (IM communication)
- Sococo (virtual office w/ screensharing and VOIP in intuitive package)
- Tmate (terminal sharing for pair programming)
- PivotalTracker (good for documenting and viewing progress asynchronously)
We do a fair bit of pair programming to limit the amount of knowledge silo’ing and this helps introduce new coders to the team. It also builds relationships so we know who we can ping for expert level Javacsript questions or who knows about the obtuse Oracle database behavior.
Occasional Physical Meetings
I’ve met the people on my team three times in 10 months. The first event was a week long onboard process. The next two events were company retreats where we left our normal responsibilities and descended on an unsuspecting vacation rental.
The retreats are a nice way to spend some non-traditional work time hacking on more creative projects. Also helps to build relationships. Plus it’s a nice thing to do to improve engineer retention.
Reasons to do remote hiring / build remote team
- Wider selection of applicants.
- Applicants bring a breadth of backgrounds, not just SF based-engineers.
- Allows time-zone diversity in case critical tasks arise outside of PST. Early morning downtime? Get those east coasters on it!
- Potentially better engineer retention if there’s time flexibility for dropping kids at school, lunch errands, etc. The guideline should be “did the work get done”.
Things that help me
- Keeping regular hours
- Overlap 5+ hours per day with our main timezone. I normally keep 8 hrs of overlap.
- Learning to be very forward with questions that other teammates might know. If I’ve spent 30 min banging my head, it’s time to ping someone else for a reality check.