This is a great question, with a lot of facets that are worth considering! I've been working at my organization for 12 years, partially remote for much of that time, and exclusively remote for the last 2 years, so I've given this quite a bit of thought.
The first thing to consider before you get into the necessary skills is whether your organization is set up for remote work. This article by Thoughtbot, and the book Remote by Jason Fried + David Heinemeier Hansson offer many suggestions on that front. But the short version is, if most of your coworkers are not remote, you're in for an uphill journey.
I won't make a distinction between technical and "soft" skills, because that implies a hierarchy that doesn't exist. The most important skill you have as a remote worker is your ability to communicate clearly. If you are not a clear communicator, especially in written communication but also over phone or video chat, you should strongly reconsider working remotely. You will need to rely heavily on your choice of words when you're stripped of resources like body language, subtle facial expressions, or auditory tones.
That brings me to the second key skill: writing everything down. I'm a remote manager, one of only 4 remote workers in an org with ~45 full-time staff. Writing everything down is what keeps us all on track. I have my team (succinctly) write down what they plan to do today every morning, and then write down what they actually ended up doing at end-of-day. Every to-do, every promise they make, every system they design, all of it gets documentation. Folks who work in the same physical space rely on a lot of impromptu conversations to make decisions - you won't have this luxury. You need a paper trail.
To support your paper trail, you need good tools. I love BaseCamp for project management. I love HipChat, soon to be Stride for chat. I love Zoom for videochat + screen-share. Google Docs is handy if you've got it. Atom + Teletype and/or tmate and/or Glitch for code-pairing can be handy.
I hope that helps!
TeleType is so insanely helpful when I get stuck on some weird development problem.
Definitely handy. I find it a bit wonky and very poorly-documented but when it works it's nice.
I prefer tmate but I'm the only one on my team who uses vim so we don't use it as much.
I freelance remotely and have a remote job, here is what I think
I think a decent step into remote working is working on a distributed team where some of your team may not be in the same office. The next logical step is full remote.
I've worked remotely for the past four years now and the skills that have helped me thrive the most is being an effective communicator and resourceful. For me, I've found that working with other folks in different locations and different time zones, asynchronous communication is key. As such I had to be good at writing up emails that conveyed my thoughts and needs. It's also a good skill to exhaust all your options by looking into solutions you find on the Internet first before asking your colleagues.
Being on an engineering team, we used JIRA to track tasks and bugs. As such my questions had to be clear or there would be several cycles in trying to make sure questions were clearly understood on both ends. I also was relentless with making sure that others communicated clearly and didn't make assumptions such as something being low hanging fruits on JIRA. What this yielded in was better expectations and smoother workflows between coworkers.
Being able to write documentation was important as well. As knowledge transfer had to happen in many instances when new folks joined or a project was handed off. Being able to write documentation isn't easy. Since as someone who has a lot of area knowledge you make assumptions and it can be really confusing for others. I've found that being able to take feedback through peer reviews was helpful. Especially if the person reviewing fit into the audience the documentation was intended for.
I watched this talk recently. I think he summarizes pretty much what you need to do as a remote worker.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.