We are all remote workers
tl;dr: whether you know it or not, a non-trivial fraction of your work is remote. So, build remote working skills.
Who is a remote worker? What qualifies a piece of work as remote, as opposed to situated? The answer is more subtle than it appears at first glance. The first criteria that comes to mind is: physical proximity to collaborators. But access rapidly drops off. It works well if you can turn your chair around and talk to a colleague, but if they’re on another floor or in another building, then they might as well be in another city. Add to that the cult of “respect the headphones”, especially for programmers. More often than not programmers in the same room will have giant ear muffler headphones on and communicate with each other via chat and email.
No system is an island, and modern code will typically build upon a number of other services or libraries. If you’re writing code against a number of other services and libraries, the chances that the people you need to collaborate with for all of them are physically close to you are infinitesimally small.
Hence, a good fraction of your work is likely “remote”. So whether you’re a remote worker or not, it will help you if you build skills for effectively working remotely.
The most important mental shift is towards working asynchronously. This is hard, because it requires some thought and planning, and is a lot more proactive than synchronous work. Working synchronously by default is lazy and ineffective.
A corollary of working asynchronously is that communication shifts away from verbal and towards the written word. Writing coherently is harder than informal conversation. Polish your writing skills.
And when you finally do meet those far flung colleagues, remember not to just talk shop! Build the trust and rapport that will enable you to work through the ether.
P.S. I’m looking forward to two books about remote working scheduled to release this fall: Scott Berkun’s “The Year Without Pants”, and 37 Signals’ “Remote”.