How to Build a Distributed Engineering Team

Bruno Miranda

VP Engineering at Doximity



At Doximity, we decided early on to cultivate a culture of inclusion. It was a priority for us to work with people who could bring unique perspectives and help us think differently. We recognized one of the best ways to do this was with a geographically distributed team. Building a diverse team, however, is not an easy feat. How can you guarantee a culture that fosters innovation even though employees aren't in the same room?

Actions taken

1: Fine-tune your recruiting practices.

  • It is paramount to look for people who have the ability to self-manage, closely followed by precise and fluid communication, self-respect, and respect for others.
  • Hiring someone with remote work experience goes a long way to smooth out the process. Whenever we speak with a candidate considering a remote position for the first time, we make sure to discuss the process and communicate pitfalls that other remote employees have encountered during the process. 2: Establish a personal connection with your teammates and communicate company values.
  • We start this process with video interviews which allow us to meet the candidate early on. Then, we ask new employees to spend at a minimum, their first week working in the office to review, discuss and most importantly practice company values first-hand. Separately, we also get together once a quarter with the team for a few days to retrospect, share lessons learned, and plan for the quarter ahead. 3: Treat collocated and distributed equally
  • Ensure you can communicate asynchronously and that you enforce continuity of discussions independent of location. 4: Virtual water cooler
  • Asynchronous communication allows us to filter distractions, yet it also filters out tonality and spontaneity– which are key components in the way we communicate with and understand others.
  • Conversations in these channels are typically not business related; providing a casual medium for discussions gives people somewhere to grow their personal connections. 5: Focus on delivery teams
  • Hire self-managing people, keep the teams small, and form product-focused teams. Each major product should get a dedicated delivery team of 6–10 people who work closely together to build and deliver solutions. Each person on the team owns the overall quality of a small part of the product. 6: Leverage the right technology Videoconferencing
  • Our San Francisco office has 12 conference rooms, each one of them outfitted with a ChromeBox, conferencing system, and a large, wall-mounted TV. ChromeBox integrates directly with Google Calendar and makes joining meetings a breeze. It also enables screen-sharing during meetings, two-way video, and uses an omnidirectional microphone to make two-way voice clear to all callers. Asynchronous chat
  • Slack is our tool of choice, but there are many equivalent alternatives, such as HipChat and Stride, both of which are made by Atlassian. We've chosen Slack because it provides the integrations we needed to consolidate work into one platform. These integrations include alerting from our DevOps stack, calendar reminders, and automated auto-responders. Screen-sharing
  • Many tools nowadays allow for remote control and annotation directly on the screen, enhancing the "being present" feeling. Voice Calls
  • Realize early and often when a particular text chat would be more effective over voice.
  • We tested several tools for online voice calls and once again ended up going with Slack since it was already such an integral part of the workflow. Slack gives us the ability to go from text to call, to screen-sharing, to video, quickly and seamlessly.

Lessons learned

  • A significantly expanded candidate pool is a massive leg up on the competition. Another big motivation for having a distributed team is that it enables you to build a more diverse company.
  • Set your hiring practices early-on, and optimize based on feedback. Distributed employees must be clear communicators and share a high sense of pride in the quality of their work. They must be able to self-manage and be receptive to cultures other than their own.
  • We continuously collect feedback during 1:1s to improve our practices.
  • Take some time to fine-tune your company's onboarding and mentorship methodology, and, most importantly, facilitate an environment that enables asynchronous communication to foster a diverse, distributed environment you want to create.
  • Treat teammates equally. If one person is remote, treat everyone as being remote.
  • Operate as small delivery teams to foster ownership and high-quality software. It also improves efficiency and lends itself very well to the distributed nature of the organization.
  • Getting a few days in person with the team has a massive impact on the exchange of culture, not only the company's but also each person's heritage and location-based customs. We have found that those simple steps make shared company values prevail regardless of physical location.
  • A timezone differential larger than 6 hours is a bit more challenging, and it is not something I recommend lightly.
  • A distributed team is less about saving a penny and more about hiring top talent regardless of location.
  • As a leader, it's your job to empower efforts where trust, collaboration, and creativity prevail. Sources: https://www.infoq.com/articles/10-lessons-distributed-team https://blog.brunomiranda.com/building-a-distributed-engineering-team-85d281b9b1c

Be notified about next articles from Bruno Miranda

Bruno Miranda

VP Engineering at Doximity

CommunicationCulture DevelopmentDiversity and Inclusion InitiativesDiversity HiringLeadership RolesEngineering ManagerAgile, Scrum & KanbanTraining & MentorshipTeam & Project ManagementDiversity & Inclusion

Connect and Learn with the Best Eng Leaders

We will send you a weekly newsletter with new mentors, circles, peer groups, content, webinars,bounties and free events.


HomeCircles1-on-1 MentorshipBounties

© 2024 Plato. All rights reserved

LoginSign up