Why Remote Works
After working remotely for 4 companies over 6 years, interviews with hundreds of others, managing fully remote teams, interviewing hundreds of employees for remote roles, chatting with thousands of remote workers, and voyeuring the activities of many amazing remote teams, I concluded that, to my surprise, I need to write a take about why, when and how remote work works.
i - What Kind Of Remote Company?
The kind of remote companies I have in mind employ or contract people and entities around the world, without strict timezone or work-schedule constraints. In practice, this includes mainly software-centric tech companies, so I’ll focus on these. I expect the practice to spread, but robots have to get better first.
I don’t think the benefits of remote work apply to hybrid models (i.e. offices but a flexible work-from-home policy, or some remote employees). The hybrid model can work, but it has a different set of benefits and costs.
Not all remote projects started remote, most of the examples I will give were location-based when they only had 2 or 3 contributors. But, I expect that transitioning from a large location-based company to remote is a different enough beast that this piece won’t have any advice for such a scenario.
Nor is remote about every member working from home, or outside a joint setting. I’ve seen remote companies where small teams of developers or unrelated employees were often working from the same space. Remote is more so about not requiring anyone’s physical presence for anything and not excluding anyone from any information acquisition or the decision making process because of their physical location.
ii - Our Best Model
Most people mistakenly try to model remote companies on the most successful remote companies. Instead, if you want to model a remote company you should first look at the most successful remote products and product-churning hubs. You should look at open-source software.
Linux, Git, C++ (the standard working groups and to a large extent related work on clang and g++), Rust, Postgres, Python, OpenCV, many Linux distros, Bitcoin, and so on.
Remote or mainly-remote collaboration is and has been the norm in many open source projects. These projects are non-profit, and thus their dynamics can differ quite a lot, but they are nonetheless impressive works of craftsmanship, in some cases more complex than any tech company, including the FAANGs, could ever build or maintain.
The obvious things we should look at are how these projects manage coding guidelines, “recruitment”, documentation, team, and code structure. But there are a few less obvious but equally critical points to consider.
The fact that open source projects succeed in spite of not earning the contributors any money directly is the first major hint we get from them. The second major hint is that most of these projects were (and to a large extent still are) managed via email, IRC, bug trackers, and version control hosting services. The last one is their tremendous technical complexity, which makes them hard to replicate or significantly improve upon by a private enterprise, even with the code out there in the open.
I’ll give you a minute to chew this one over.
iii - Asynchronous Communication
Asynchronous communication is the core element of remote work.
All successful remote projects have used async communication and I think it’s most of the reason they worked. You will find precisely zero examples where a remotely build codebase relies on zoom meetings or IRL meetings.
The closest thing might be the C++ committee meetings; Followed up by conferences, like those for Linux, BTC, and Rust. But these seem mainly useful for social reasons and establishing consensus. The vast majority of work is not done or agreed upon during conferences, rather, they are more so a tool to establish a shared vision and an excuse to travel and hang out.
Asynchronous communication’s advantages can be classified as brevity, consistent reply time, permanence, and convenience.
Brevity comes in part from the medium of text. People are able to carefully write and re-write their messages, without the social anxiety or pleasantry associated with speech. If they already said something similar in text, they will be able to copy-paste it, and references can be hyperlinked.
It also comes from allowing people to escape various forms of lag. Meetings often branch into siloed communication where two or three people are talking about a topic that’s relevant, but unactionable for the rest of the participants. This can be important, but it adds lag for the other participants, unable to do anything in the meanwhile.
Even one-on-one meetings add lag due to the “normal” cadence of the human voice being 2-3x slow than an average tech worker’s reading speed. Typing for most, even those like as that do it a lot, somewhat slower than speaking, but on the slip side we can “pre-type” potential answers, we can reply to a different thread while waiting for an answer in another, or we can just multi-task while waiting for replies that take long.
Consistent reply times are also important. Meetings and office interactions have “instant” communication but are sparse and inconsistent. “Calling” a meeting depends on the participant's schedule, interacting with them directly depends on their presence at the office and them not being in a different meeting or conversation.
Asynchronously, reply times are more consistent. They may not be instant but there are often some soft guarantees as well as hard guarantees. The former being very important, they often look like “any message that I leave today I will, at most, have an answer to by tomorrow morning”. Large companies can have weeks with a problem not being discussed by key stakeholders and contributors due to meeting schedule conflicts. A remote company might have, at most, a day,
Permanence comes through the fact that messages are archived somewhere. This allows us to reference previous discussions easily and unambiguously. It allows us to communicate in a public space, without disturbing others, since by chance some may be interested in reading our conversation. Maybe, more importantly, it turns any discussion that should be an issue, review, specifications, and documentation into the very thing being discussed, since the messages can be copy-pasted and adjusted.
Convenience is derived from not having to respect so many social norms of locality constraints while communicating. That is to say, you dress in a nice shirt, drive to the office, and sit politely in a chair fidgeting your fingers during your stand. I get out of bed but naked, start doing yoga, put on my headphones midway through as the call’s about to start, and finish right as I’m done cooking my eggs.
Convenience is a double edge sword and is the main reason why so many people had horrible experienced working remotely during covid. It’s very easy to abuse and results in a sub-optimal meeting experience for the participant (who doesn’t derive the maximum amount of information) and the others (who don’t derive optimal information from her).
The main problem I’ve seen with text is 1) messages not getting answered and 2) people being overwhelmed.
I think that to some extent both of these are red herrings. I’ve often seen a @here request in slack go unacknowledged by all but 1 or 2 people, or woke up to 40 or 50 slack messages. And this seems bad until you put this into perspective.
In an office-based setting you can’t “@all” a few times a day by convening a company-wide or department-wide meeting, work would grind to a halt. Nor can you have the whole team throw 50 different coffee chats at one guy, there’s not enough space during the day for that much conversion.
This is why even location-based companies tend to use slack or email.
The reason this can break down is that in location-based companies, calling a meeting or chatting with someone in person is a clear way of escalating something from “get to this when possible, maybe next week, if ever” to “please direct all your cognitive capacity to this right now”.
It seems to me that most remote teams I’ve been in lack a clear escalation strategy, the best one I’ve seen is conveying a meeting the next day, but that’s less efficient than “everyone in the office here now pleases”, which doesn’t work with async schedules.
In an ideal world, slack would have a feature where it can escalate a thread into a channel, and sticky it to everyone mentioned in it. Or potentially even a “resolved” button.
In practice this has to be done ad-hoc, by manually turning threads into issues on your tracker, codifying the meaning of certain emojis, doing the
@Shelly @Shelly @Shelly thing so that the other person gets this is important, and relying on people prioritizing their areas of expertise and stakeholders in their projects.
I will probably ignore most messages in
#UX even if they are addressed to everyone, but I will prioritize those in
#ENG , this is a feature, not a bug. It leaves people the option to participate in a conversation which otherwise they'd be guaranteed not to have time for, and they can decide where their focus lies based on their skills and bandwidth.
On the whole, I can see people missing the urgency of in-person communication, but I will trade that for the increase in bandwidth, context, and accountability that text-focused communication provides.
iv - The Team
The thing that changes most with remote work is hiring dynamics.
The first change when hiring a team is salary. I analyzed this ad nauseam in this post (also see comments by a few “real” economists in the comments and on HN). From what I’ve gathered thus far, remote work can cut your hiring costs but not by a large margin. You might cut somewhere from 0 to ~40% of costs, maybe ~60% if you sink more time into interviewing and don’t require that many “specialists” (which will almost always be completely centralized in expensive tech hubs).
Mistake 101 I’ve heard and seen remote companies making is trying to aim for “cheap” and recruit at a superficial level, based on anything from Upwork rating to leetcode problems. This results in:
Hiring people that superficially “do the right thing” but fail to have a holistic approach vis-a-vis the product and the company. This usually results in heavy-handed management and management heavy teams, thus simply shifting cost, with the added benefits of driving away good talent.
Failures to communicate properly, due to linguistic boundaries; These are accentuated when people from multiple countries try to convey ideas in a language (almost always English) that’s native to none of them. This results in docs and specs that are suboptimal or outright wrong, it can be fixed with a heavy managerial overview but falls into the above-mentioned failure mode.
Fast churn, usually from the best people. You might end up finding “hidden gems”, especially in more quantitative fields like engineering and marketing, but if they are truly smart they will use your company as a jumping-off point and either move to work in a more developed country with higher-paying on-site jobs or find better pay, especially as the remote pay gap closes. Our friend Pareto can tell us more.
Second, you now have the ability to recruit globally. This might still mean that you are recruiting 90% of your people in 100 or so tech hubs, but you have a much larger pool than a company that can afford an office in only one or two of those hubs.
Does this mean you have access to 100x of the people you’d get if you were recruiting in a tech hub? Almost certainly not. The vast majority of people seem unable to work well outside of an office environment (more on this later).
Speaking of hiring people that can’t work remotely, this is also a huge issue that will drive a whole team into the ground. Meeting schedules tend to get set for the lowest common denominator. If you as a manager have an engineer that needs daily 1-1s and team-wide meetings every second day, this will destroy the advantages of asynchronous communication and leads to a heavier meeting load on everyone, thus taking away the advantages offered by remote.
You can also recruit people that hate commutes, fixed schedules, meetings, and social interactions. If this sounds like your stereotype of a good engineer, you’re getting the reason of why this is rather important.
Many people are either very inefficient or completely unable to work in an office environment, due to the way they think or due to very normal time and mobility constraints, be it, kids, parents, injuries, or disabilities.
Management dynamics change a lot, and recruiting or “growing” new managers become very different. Office environments should select social-butterfly managers with pitch-perfect verbal communication and an ability to organize and lead meetings, as well as micro-manage in certain cases.
The ideal remote company manager is someone whose face is never seen, potentially just an AGI somewhere in a swiss bunker, who’s an excellent writer, reviewer, able to react to questions and ideas on slack with lightning-fast speed at any hour of the day, able to hold and build accurate in-depth models of the product or even whole business.
I’d say remote managers are hard to find; They probably look (and smell) a lot more like engineers than suits, and I expect that joke about them being AGIs to ring funny for at most 30 years (and I’m a huge pessimist on the subject)
Social dynamics also change quite a lot, and I expect a lot fewer friendships to be formed while working in a remote company.
I certainly think this isn’t a must. If you’re looking to make friends you certainly can, I for one apply the policy of meeting as many colleagues as possible while traveling and certainly made some friends and acquaintances doing that.
This is bad for the company (though good for the employee) in so far as the barrier to switching jobs is much lower. You’re no longer losing friends nor do you feel like betraying a friend when telling your manager you quit.
This is good for companies (though bad for some employees) in that firing people becomes much easier, and poor performers are no longer hidden by the web of social interactions and protected by friendly connections.
This is odd for everyone in that work loses a lot of the “socializing” incentives it previously had, this also means that work becomes a lot more efficient. Coupled this with other gains and you go from:
60 minute commute + 30 minutes grabbing the morning coffee with Joe + 90 minutes shooting the shit and getting into work + 30 minutes foosball break + 30 minutes working + 90 minutes lunch break + 30 minutes siesta on facebook + 60 minutes work + 30 minutes another coffee break because Anna just got back from vacation and “ooooh, tell me all about it” (I hate you) + 60 minutes work + 30 minutes checking the fridge packing your stuff and saying goodbye + 60 minutes commute
Into one or two streamlined blocks of a few hours of work which feel much less cumbersome, are much more productive, and potentially leave 2/3rd to 3/4th of the day untouched to do whatever you want.
In practice, this almost never works out because we are apes and “oooh, what’s new on reddit!?”… but without the constraints of an office routine it is at least theoretically possible and as people get used to remote work they can converge to it.
v - Cutting Costs
The obvious advantage of remote work, which I think is not all that important, is cutting costs. The costs here are primarily related to office space and office maintenance.
There’s arguably some extra fiscal optimization that one can do when remote, especially once you’ve scaled up enough to have distributable revenue, especially if you have a small pool of private shareholders.
I think salary costs should also be reduced in an ideal world, since a lot more people find remote work more convenient than companies, as of now. But the salary market is very inefficient and I expect this gap to go away as remote-first companies start outcompeting out the officed old-guard.
How much of a cost saving this is depends on a lot of factors. In most cases I expect it to be in the double digits, but not beyond 20 or 30% at most.
I don’t have much to say here, once remote companies scale up the percentages add up and it might be a deciding factor in their market dominance, but today’s paradigm is exponential growth and talking about linear cost cutting as important will cause any VC on the street to make a hissing noise and flee.
vi - Paying For Headspace
Why do tech workers spend so much of their office time not working?
Why are companies ok with this and even encouraging it with fine cuisine, ballpits, and lounges?
Because tech jobs aren’t paying you for their time, they are paying you for your brain, quite literally.
The “real” value exchange when accepting a tech job is something like “I’m going to give you
This is hard and illegible so it’s much easier to say “we’re going to give you
You can and should try to track performance, but doing this perfectly is impossible. Being to aggressive about it leads to goodhearting performance metrics and alienating a certain typology of people that don’t enjoy social conflict and already have high anxiety about their work’s quality.. and once again you’re filtering out your best candidate unintentionally.
I don’t have a solution for this challenge.
I think the issue can be that some people just don’t get that this is the underlying exchange happening, I’ve certainly seen many examples of people “stagnating” in their learning when picking up a remote job. I’ve even suffered this myself, although temporarily, since you have to push yourself a lot more, in offices you just learn and remember the relevant stuff naturally, because all the other flesh blobs are talking about it.
Ultimately the solution here is equity and passion. If people are passionate about what they do and if they have a giant monetary incentive to succeed then this monitoring their “involvement” becomes useless, you can be pretty sure they are doing the best they can.
But what do you do once the company grows big and you can no longer give out equity? I don’t know, maybe you fill everyone’s schedule with 4 hours of zoom meetings every day losing most efficiency advantages of remote work, and hope that people stick through it because staying with their kids or not getting dressed is more important than nice social interactions in an office.
Maybe software that doesn’t scale exponentially in complexity doesn’t need exponential scaling in the team building it.
Potentially, the role of office stints as de facto schools where employees can learn and keep fresh a view of their skills, task, product, and company, just can’t be replaced. And this will be the downfall of remote.
It could be that everyone comes around to it eventually, it just takes people much longer to become efficient, but the cost savings, benefits of async communication, and quality of employees make up for it.
The only thing I can guarantee is that VR glasses will have nothing to do with it one way or another.