In 2016, we began hiring more people at DOBT who were new to remote work. I started writing this guide to help them get up to speed.

It answers questions like:

  • What types of tools we thought were best suited to different types of communication
  • How to communicate kindly and respectfully without much context
  • Why it’s so important to document your work
  • How to maintain a decent work / life balance
  • How to give and accept feedback
  • How to run disciplined meetings when collaboration is that much harder

I hope you’ll find it useful.

(Huge thanks to my ex-colleagues Rebecca Moore and Kari Mah for writing sections of Parts 3 and 6.)


DOBT operates as a remote team. Working remotely offers incredible benefits, including the opportunity to set your own schedule, design your best work environment, and hire the best people from anywhere.

But it also comes with one huge caveat. To work remotely is to work alone.

You’re no longer in a social environment, so it can be hard to feel comfortable talking to your colleagues. And you have no idea when your colleagues leave the office, so it’s hard to remember to take breaks.

The default is to keep your head down and get your work done in silence. But this is hugely problematic in three ways.

First, it makes it impossible for us to collaborate. If we do not communicate, we cannot work together effectively.

Secondly, if we’re not taking the time to record what we work on each day and helping others understand our daily decisions, we don’t accrue any organizational memory. Since our decisions are not documented anywhere, we have no way of building upon the company’s past experiences and are liable to repeat our mistakes.

Finally, and most importantly, working in total isolation for hours on end is no way to live. It can lead to depression, burnout, and disconnection from the rest of the team.

For these reasons, learning to communicate and thrive remotely is just as important as doing the actual work, if not more so. Communicating your thoughts to others should take up a significant chunk of your time, possibly as much as it takes to complete the work itself. And if you’re arriving at DOBT from an office job, you should budget in time to help yourself successfully transition to a remote lifestyle.

This guide collects what we’ve learned over the years about how to best work remotely. It’s also intended to be a living document; instead of enforcing a way of working, it’s a record of strategies that have helped us work more effectively in the past.

This means that if you see something outdated in these guides, or something that no longer makes sense for a team of our size, or even something you disagree with, we’re trusting you to help us change it. Open a new issue in this repository explaining what you want to change, or if you’re comfortable using GitHub, make the changes yourself in a new pull request.

Where we communicate

We don’t all work in the same office, so we don’t have the luxury of tapping our colleagues on the shoulder when we want to chat.

Sometimes, it can even be difficult for people in different time zones to schedule a short meeting. So, our norms of communication are slightly different than what you might be used to if you’re coming from an office job.

Below is a brief overview of our different communication channels, when each should be used, and when to switch between them.

Daily conversations

  • At DOBT, GitHub issues are where work happens. Any given issue can contain long asynchronous discussions, individual tasks, and bug reports. We also manage work in GitHub with the Projects and Milestones features. You’ll spend most of the day either writing in GitHub or working on tasks logged in GitHub.

  • We’re also in Slack every day, our general, all-purpose chatroom. It’s great for staying in the loop with colleagues, asking quick questions, and keeping up with what everyone’s doing. But Slack is terrible at assigning work to others or writing down anything you’ll need to reference later. That’s what GitHub is for.

    Generally, we default to discussing everything in an open Slack channel, rather than in direct messages (DMs). The reasoning is twofold. We want to encourage a transparent and inclusive culture where everyone is part of the conversation, while also building a record of our work, which is only possible if the conversation takes place in the open with broad participation.

  • If a discussion is getting too unwieldy or devolving into quick back-and-forths, we might try to resolve it with a brief audio or video call. (Currently, we’re using Zoom and Slack calls for this.) Calls can be a great way to quickly coordinate or make a decision that would take much longer to hash out in writing. If you find yourself collaborating with a team member frequently, think about scheduling a weekly 1-on-1 video call with them.

    We can also screenshare over video calls, which makes it a lot easier to troubleshoot technical issues or demonstrate bugs.

Less frequent channels

  • Your work email is good for reading spam, communicating with those outside the team, and not much else. Email isn’t centralized and can easily be altered, and “reply all” threads can be extremely hard to follow.

    If you’re emailing back and forth with a colleague, try to move to Slack or video chat as soon as possible. It helps resolve discussions faster and prevents the possibility that you’ll lose something in your inbox and forget to reply.

  • Google Docs is great for editing long prose pieces or hosting documents we plan to update frequently. (We usually revise other types of writing, like blog posts, within GitHub pull requests.)

    We also use GDocs to work on spreadsheets together.

  • Slack posts are pretty useful for sharing company memos, throwing out ideas, and explaining your thought processes with the team. We’ve just started using them, and we’re still experimenting with the best tool to use for this type of writing in the future.

  • Front is our shared inbox for support. We use Front comments to discuss how to answer specific support requests.

  • Pipedrive is our sales CRM, where we manage prospects and leads. We BCC Pipedrive on client-facing emails to place them in a central system of record. We also use Pipedrive’s notes feature to document meeting notes.

Team-wide meetings

  • We hold semiweekly check-ins to update each other on our progress for the week and check in on our quarterly goals. We try to keep these short. For anything that needs extended discussion, we schedule follow-up meetings or write up a GitHub issue.

  • Every quarter or so, we also fly somewhere for a retreat to set the company’s direction. Retreats are one of the few times we’re able to see each other in person, so we try to make them count.

    We’ve found that our retreats have been most effective when everyone agrees that the topics on the agenda are worth discussing. If there’s a major internal disagreement on the company direction or whether a business problem exists, it’s not going to be resolved after a few hours of team discussion.

    This is another reason why it’s so important to communicate regularly when working remotely: So that we have the space and time to resolve disagreements independently of retreats.

When to switch between channels

Communication at DOBT follows two general rules:

  1. Discussions should happen wherever it’s easiest for everyone to participate. We generally prefer GitHub for any conversation that isn’t urgent or blocking someone else’s progress. A / V calls and Slack require everyone to be available and ready to focus on the same thing at the same time, which is uncommon within a distributed team.

    But participants should also feel free to switch to another channel as the nature of the conversation changes. If a Slack conversation is getting too hard to follow, switch to a video call or immortalize it in a GitHub issue (as appropriate). If a GitHub discussion is devolving into quick back-and-forths, move it into Slack.

    This also means that discussions should take place wherever all required participants are most comfortable. For example, if there’s a decision to be made in a Front conversation that involves non-support personnel, or a Pipedrive thread that involves non-sales personnel, move the discussion into a GitHub issue.

  2. Every decision should be documented wherever it’s easiest to find. You and your colleagues should not only be able to easily find a written record of any decision you made in the conversation, but also why you made it.

    This means that all important information should be recorded in a permanent place that everyone is comfortable with. Decisions made in Slack or over meetings should be posted in a GitHub comment or Google Doc. If the decision concerns a company policy that’s unlikely to change in the short term, it should go into a guide like this one.

How to communicate

Because we mostly communicate through writing, it’s crucial to learn how to write effectively.

Whenever you’re composing a message to colleagues, it can be helpful to think about these guidelines.

Get to the point.

Communicating asynchronously takes more effort than chatting in person, which makes brevity and clarity all the more valuable.

Generally speaking, here are some great tips for improving your written communication.

If you are soliciting feedback from others, start with your request or question, and then tell us the exact type of feedback you’re looking for, whether it be detailed comments or a simple approval.

Empathize with your audience.

Think about which of your colleagues might want to reply to your message, and then revise it with them in mind. Have you left out any crucial context they may be unaware of? Can you remove any extraneous detail your audience doesn’t need to wade through? Can you take out any domain-specific jargon that others might not understand, even after Googling it?

Try to include everything your colleagues need to understand or act upon your message, and nothing more. Everything else is a waste of their time.

Mistakes are an opportunity for growth.

We’re all human, and we all make mistakes. Mistakes are inevitable when you’re learning and growing. It can be frustrating when someone makes a mistake that affects your work or stumbles when trying to grow in an area you have expertise in. But when we discourage mistakes or shut people down when they stumble, we’re discouraging their personal growth and development.

In our team, we try to focus on approaching mistakes with honesty and understanding, rather than on simply eliminating them. That means pointing out mistakes as they happen, without chastising the person responsible. Instead, we discuss how we can prevent the issue from happening in the future. If necessary, we might want to create tasks for ourselves (like changing the product or changing company policy) to ensure the mistake doesn’t happen again.

Assume positive intent.

When we assume by default that our colleagues mean to do the right thing, we can ensure that our collective mistakes and gaffes don’t derail our professional relationships.

This is especially important when communicating though text, which lacks much of the context of talking face-to-face in an office. For example, unless you’re actively giving your colleagues the benefit of the doubt, it can be easy to misconstrue a quick Slack message as an aggressive personal insult. Take a breath, re-read the message, and proactively work to understand the intent behind it, starting with the assumption that everyone involved is willing to do the same.

What does it look like to actively work towards understanding? To start, try asking yourself the following questions:

  • Is there a chance that you’ve misinterpreted the message?
  • What in particular makes this message feel like an attack?
  • What about the context is making you assume the worst?
  • Is there a chance that your colleague has misinterpreted something?
  • Is there a chance that your colleague is missing some crucial information, skewing their perception of the situation?
  • Is there anything you could clarify that might resolve the situation?

Remote work is isolating enough without the added layer of distrust that can arise from misinterpreted messages left unresolved. When you assume that everyone around you has good intentions, you’re that much closer to building and maintaining a coherent, happy team.

Your words matter.

Since we disproportionately communicate in writing, the content and tone of your words have an outsize effect on your colleagues.

If you’re in a leadership position, your words can really affect the team’s direction, and your tone has a sharp impact upon morale. If you toss off a rant in a GitHub issue during an especially aggravating workday, the impact of your message won’t fade over time. Instead, it will be re-read by others, dissected, and inevitably rediscovered months later when someone’s searching through old threads.

That’s why it’s important to always treat your colleagues with respect. You are permitted and encouraged to speak up (emphatically, if necessary!) if you disagree with their perspective, but keep in mind that their viewpoints do not represent a personal attack.

In turn, you should take pains to ensure your arguments address the specific actions and opinions of your colleagues, not their personal character. Remember that we all have a common goal for the company to succeed. We don’t need to tear each other down or score political points in pursuit of that.

You should also lean on the side of over-communicating, taking the time to express nuance you might find obvious and unnecessary. For example, managers should always clarify whether they’re giving direction or a suggestion, whether they’re just throwing an idea out there or telling a subordinate to do something.

Accept small delays in dialogue.

There are a few trade-offs of working asynchronously, and small delays are one of them. If you generally expect an immediate reply from your colleagues whenever you need something from them, you’ll need to give that up. Your co-worker might be tied up in a difficult project, you might be interrupting them at the end of their workday, or you might be asking them a question that they can’t realistically answer in five minutes.

As a rule, try to give colleagues a few hours to respond to your questions, and at least a day or two to complete something you assign them. If they take even longer to respond, don’t read too much into it! They might be absorbed in a challenging project, or merely offline.

In a work culture that forgives the occasional delay in communication, you might sometimes be a little annoyed when someone doesn’t get back to you in time, but you also benefit. Instead of treating every Slack DM as worthy of your undivided and immediate attention, you can designate a block of time in the near future to respond to colleagues when you are able.

Likewise, if you give colleagues adequate breathing room to accommodate your requests, you’ll find that most of your “urgent” requests can actually be assigned with a few day’s notice. This mutual understanding leads to a calmer, more healthy work environment.

Of course, whenever a colleague asks you something, a quick reply is always better than saying nothing at all. Just telling your colleague that you got their request goes a long way towards making them feel heard.

Proactively resolve conflict.

If you’re consistently frustrated with a specific colleague, or strongly disagree with something they’ve said, don’t suppress your frustration. Instead, take a deep breath, examine whether your concerns have merit, and go talk to your colleague about it if they do. If talking to them directly doesn’t resolve the situation, talk to your manager.

Because we only see each other a few times a week, the person you’re upset with likely has no idea how you feel. And, if you’re not visibly agitated during your 1-on-1’s, your manager likely has no idea either. Bottling up your concern, or papering over things for the sake of reducing drama, only opens the door to greater conflict later on. It’s your responsibility to bring up and try to resolve your concerns as they arise.

Document everything

Employees at DOBT have significant autonomy, since we’re a small team organized by functional roles. Everyone owns a specific area of the business and is able to carry out the strategy they deem appropriate in that area.

Your colleagues can have their own opinions on your priorities, asking you to prioritize tasks blocking their own work or tasks that they think are urgent. However, you are ultimately responsible for your own work and your own time.

In exchange for this autonomy, we ask that you hold yourself responsible for documenting your work. This includes posting artifacts of your work regularly and writing up regular progress updates on your tasks.

Why does this matter?

When everyone on the team documents everything, it strengthens the company’s redundancy, accountability and empathy.

The concept of redundancy comes from software engineering. In a nutshell, it means that critical components should always have multiple backups, just in case the component fails or becomes unavailable. In this case, the critical component is you—or, rather, the knowledge in your head. If you fall ill, go on vacation, or otherwise become unavailable, anyone in the company (including the successor to your role) should have access to what they need for the company to function in your absence.

Of course, properly documenting your knowledge is important for employees at any company. But the nature of remote work, where the schedules of your colleagues may rarely overlap, makes redundancy even more important.

We can’t measure your performance by how many hours you’re in the office each day, so documenting your work is also an important accountability measure. It helps your manager understand what you’re doing all day and whether you’re as efficient as you can be. But it also really helps your colleagues empathize with and gain an appreciation for your role. Since we can’t see each other at work, the only way to convince your colleagues that you aren’t slacking all day is to tell them what you’re working on!

How to document your work

Whether you’re writing code or filling out a spreadsheet, the easiest, most passive way to keep colleagues in the loop is to store your files where others can access them. That can be a shared folder in Google Drive or a GitHub repository—wherever it makes the most sense.

If you spend most of your time in meetings, you should diligently take notes from the moment the meeting starts. Because following up with colleagues takes more time and effort than if we were co-located, you should err on the side of over-communication during the meeting to clarify any ambiguity that arises.

Surviving remote work

Remote work can be isolating, even alienating, if you don’t have the right support structures in place. Here are a few rules that have helped each of us thrive within a distributed team.

Keep a sane schedule

We’re a company spread across multiple time zones, and some of us prefer working at different times of the day. That means it’s likely inevitable you’ll see someone on Slack at odd hours. But unlike in a traditional office environment, your colleague’s or manager’s presence does not mean you’re expected to stay.

If there’s one thing you should take away from this guide, let it be this:

By no means do we ever expect you to work over 40 hours a week.

We beg you to work a normal number of hours and take the weekends off.

We also expect you to prioritize your own health and that of your loved ones. If you need to take time off, just make sure to let us know in advance. Or, if you just need a mental health day, let your manager know and reschedule any meetings you have planned.

One caveat: Just because we emphasize work / life balance doesn’t mean you can shirk your weekly commitments if you’re “just not feeling it.” If you don’t yet know how to estimate a chunk of work that you can comfortably complete in a week, we expect you to get better at it over time.

Stay healthy

Staying in your house all day is a recipe for misery. If you used to rely on walking or biking to the office for daily exercise, it’s important to make sure you have an adequate substitute before starting remote work. Try joining a gym or taking regular exercise breaks during the workday. (You’ll see your colleagues log off to go for a bike ride, rock climb, or lift really heavy weights, so don’t be afraid to do this yourself.)

Even though we don’t enforce set work hours, it’s also helpful to keep a personal daily routine. That way, you have a set time at which you’ll feel comfortable stepping away from the screen to start living your life.

Maintain a separate work environment

If you’re working from home, it can be tempting to succumb to the desire to wake up at 8:55, rub the sleep from your eyes, and grab your laptop. But we’ve found that, without a strict boundary between your work and home life, it’s hard to entirely escape the feeling that you’re still in “work mode” when you’re off the clock.

To that end, it’s important to keep your work environment distinct from the rest of your life. Going to a co-working space or a dedicated home office helps a lot, but just setting up shop in the living room or kitchen is better than your bedroom. As for your computer, a dedicated work laptop is ideal for keeping things separate, but a separate user account for work also does the trick.

If you’re in the Bay Area, our office is super helpful for keeping your work life separate, but just know that attendance is optional. None of us are there 40 hours a week, or even eight hours a day, so don’t feel obligated to show up on your first day.

Living like a hobo

Of course, remote work may inspire you to go in the complete opposite direction and travel the country in a decked-out van. And, as long as you get your work done, that’s okay! Remote work empowers you to find the space you’re most comfortable working in, whether it’s your living room, a cafe, or the beach.

If you’re working in a different place each day, you’ll run into the problem of connectivity—it’ll be hard to find and unreliable. In that case, we’d recommend purchasing a dedicated wireless hotspot to make sure your connection is as reliable as possible. You can use an app like Tripmode to ensure your data plan is only being used for work-related tasks.

Also, regardless of where you are in the world, we’ve found that, to effectively collaborate, we need to be online at the same time for at least part of the day. Ideally, your work schedule should overlap with US Pacific Time for at least four hours.

Avoiding burnout

Even if you follow all of the advice above, it’s still possible to succumb to burnout. Burnout happens when you feel like you’re putting in a lot of work for very little payoff.

If this resonates with you, you’re in a position to prevent burnout before it happens. Bring up how you’re feeling with your manager and discuss together how you can improve the situation.

For more tips on how to prevent burnout, check out this blog post from Cate Huston.

Critique and feedback

In every workplace, it’s easy to avoid feedback and brush aside conflict. That’s especially true in a remote environment: when you don’t see a colleague for days or weeks at a time, it takes no work at all to avoid that awkward conversation.

We try to do things differently at DOBT. One of our company values is helping each other be our best. We try to hire people who aren’t interested in tearing each other down, and we’re all invested in seeing each other succeed. So, when we have feedback for them, we tell them directly.

Here are a few tips on how you can provide and receive feedback in a friendly, emotionally sustainable way.

How to give feedback

When you think of something you want to tell your colleague, give it five minutes first and critically examine your feedback. Ask yourself:

  • Are you reacting to an actual problem, or just working off a gut reaction?
  • Will your feedback help improve your colleague’s (or the team’s) performance?
  • Will your colleague improve on their own if you don’t say anything?

Once you’ve decided your feedback is worth giving, consider how you can best frame it to help your colleague understand how they can improve. The Situation-Behavior-Impact Model is a helpful framework for this, where you…

  1. Capture the situation in which you saw the behavior you’re providing feedback on.
  2. Describe the behavior: what your colleague did, whether good or bad.
  3. Explain the impact of the behavior upon you, your team, or the company.

(You will notice advice isn’t a part of this model. Even though it’s best to think of specific ways someone can improve, pointing out the impact of someone’s behavior is usually better than saying nothing at all.)

Next, decide whether to give your feedback in public or private.

  • If you’re sharing a factual observation or correcting a mistake that anyone could have made, it’s best to give feedback publicly so that the entire team can learn from it.
  • If you’re providing individualized feedback or advice for personal growth, it’s likely best to tell them privately to avoid public embarrassment.

When to give feedback

The best time to offer feedback is right after something happens. When the details and context fresh in your mind, it should only take two to three minutes.

When everyone is working in the same place, it’s easy to pull someone aside to offer feedback privately. Meeting in person is ideal because you can pick up on emotional cues that aren’t always captured in written communication. In lieu of meeting face to face, ask your colleague to hop on a video call instead.

How to receive feedback

When someone gives you feedback, the first step is to take it gracefully and try to be appreciative—even though that can sometimes be hard! If they’re giving feedback properly, they’re trying to bring you up, not tear you down.

You can show appreciation by repeating what you heard in your own words to make sure you’ve understood it. From there, the best way to acknowledge feedback is to make sure it’s addressed.

First, do you agree with it? If so, try to make a correction as soon as you can. If the necessary change will take time, you might want to create a few follow-up tasks with the person giving feedback present. Making feedback actionable provides an extra assurance that you’re taking it seriously and are committed to improving going forward.

If you disagree with the feedback, try to find some part of it that you do agree with and share it with the other person. This shows them you’re open to criticism, increasing the odds they’ll give you feedback again.

How to run a meeting

Meetings are an essential collaboration tool, but bad meetings can destroy your soul. At DOBT, we try to avoid bad meetings at all costs.

Other than team check-ins and client calls, meetings are held for two reasons:

  • Coordinating on a project. If more than one person is working on a project, they may need to hold a meeting to share information and make sure they’re in alignment.
  • Resolving conflict. If two people have a disagreement that can’t seem to be resolved over Slack or GitHub, they can schedule a meeting to hash it out.

Percolate has six rules that are super helpful for conducting better meetings. They’re summarized below.

  1. Do you really need a meeting? It might be easier to hop on a call or open a GitHub issue.

  2. Meetings should be 15 minutes by default. Most meetings don’t need to be longer.

  3. No spectators. Only those with something to contribute should be present.

  4. Have a purpose, state it upfront. Every meeting should have a goal. If the scheduler doesn’t have a goal in mind, postpone the meeting.

  5. Make tasks, assign them to people. Every meeting should end with a clear understanding of who is responsible for what.

  6. Don’t bring computers or phones. To keep the meeting as short as possible, everyone should be focused on the task at hand.

    Here are a few more meeting rules we’ve found helpful for remote working.

  7. It’s up to you to reschedule meetings you can’t make. Unless you’ve put it on the company calendar, colleagues aren’t responsible for knowing whether you’re taking a vacation, observing a holiday, or dealing with urgent family obligations. Since we don’t all have the same work hours, it’s your responsibility to speak up and ask to reschedule any meetings that you’re unavailable for.

  8. Give all attendees background information beforehand. To keep meetings short, everyone should understand the decision they need to make within it.

  9. Always take notes. Everything that happens in a meeting should be written down for the whole team to see, either in GitHub or elsewhere.

  10. Accept that you might go back on some decisions made during the meeting. Some people feel more comfortable expressing themselves in 1-on-1 chats or in writing, especially if their opinions differ from the loudest voices in the room. The meeting scheduler should try following up with the quiet voices to ask them what they think, give them the space to express their thoughts, and make sure the more dominant voices don’t shut them down.

Further reading

Remote is a collection of essays and tips about working remotely. A valuable primer, especially considering you can finish it in about an hour or two.

The Year Without Pants recounts Scott Berkun’s year working at Wordpress and provides a good overview of both the pleasures of remote work and the pitfalls we can run into as a remote company.

Zapier’s articles How to Find Your Optimal Work Environment and Boost Productivity and How to Avoid Burnout in a Remote Team are excellent guides to doing just that.

Originally written for my newsletter.