<Tweet id="1836448595740172470" />
This tweet by my old boss went viral last week. We've all heard plenty of arguments for and against remote work at this point. These are the main thoughts I have on the topic:
Firstly, remote work can work very effectively for programmers. Software engineers have been working remotely since the 1980s, when IBM first allowed engineers to "telecommute". Programming is a solitary job, probably about the most solitary job you can do, and insofar as it requires communication with other people the most efficient way to do that is usually through the internet and instant messaging. Personality-wise, engineers tend to be introverts who care about freedom and efficiency, so WFH is likely to appeal to them; they're also a hot commodity on the job market (and continue to be in 2024, despite constant claims that AI is going to make human engineers redundant any day now), so companies need to compete to offer them good perks.
Amazon announced recently that they want their employees to go back to full-time in-office work. Their (prospective) engineers aren't happy about this:
<Tweet id="1836044558221599128" />
Since engineers have plenty of options, it's likely that Amazon will lose quite a chunk of technical talent through this move.
The thing is that while remote work can be pretty effective for engineering (and probably also product and design): it's not good for most other kinds of job. If you're in sales, operations, marketing, etc, working remotely is worse than if you're in-person. Why? Because those jobs are normal jobs; engineering is a special kind of work that is more like a lifestyle or craft than it is a typical white-collar job. Until 2020, if you asked 100 people on the street what the best thing about their job is then I bet the most common reason would be the people that I do it with make it worthwhile; if your job relies on relationships rather than craft, then in-person is better.
Aside from just better appealing to the preferences of engineers, it's obvious that being a remote company offers lots of other forms of upside for attracting technical talent; you can hire people from anywhere and don't need to worry too much about timezones, since technical people work mostly asynchronously and they don't need to worry about working in specific geographic territories as salespeople and marketers do.
In the past this was a more prominent competitive advantage for some companies - e.g. companies like Gitlab were able to hire better talent than they would have otherwise by demonstrating their commitment to hiring remote workers. Today that advantage has been significantly eroded, but it's still huge - I have a friend who lives in Nigeria and pulls in $150k a year working for Silicon Valley startups. It's fair to say that he's not likely to go job-hunting in Lagos anytime soon, nor is it likely that American tech companies are going to stop hiring outsourced dev teams out of Poland and Ukraine.
So I think that a primary concern for weighing the tradeoff between being WFH and in-office is the extent to which your company can derive a competitive advantage through hiring remote engineering talent. I'm not sure whether this is more relevant to startups or bigger companies. On the one hand startups are more cost-conscious and might be able to better leverage cheap overseas talent; on the other hand being located in the same building seems more potentially more impactful when working on something mission-driven that requires a lot of hours rather than something that's "just a job". Big companies like Amazon might not need ultra cracked engineers anymore and can get along fine with their steady pipeline of top CS grads, and they can afford to pay the rates of SF or NYC engineers rather than needing to hire from abroad anyway.
Probably the move here is to just have a hybrid policy whereby your team is basically in-office, but you make exception for senior engineers that are worth making exceptions for.
There are several ways that WFH policies patch over excessive housing costs: