I've worked as a (semi-)remote employee for the past 2.5 years for a HUGE multinational software company. Here's a braindump of experiences:

- I work in Ireland and my colleagues are in the US. The time zone difference is generally handy because I can work in the mornings and they come online around 1:30pm. So my afternoons (or their mornings) are when meetings and scrum calls happen. I don't attend any meetings outside my core work hours, and I'm rarely even asked to. I'm not sure a wider timezone difference would be suitable

- I actually work from a subsidiary office so I have people to get lunch with, even though I don't have any work contact with them.

- Things are usually scheduled around a US working day so, for example, nightly builds were scheduled to run in the early morning so they hadn't finished by the time I started work. And then I'd be trying to download them just as the corporate network start to get saturated by the US employees starting work.

- My line manager is here in the office but functional managers are in the US. This creates odd situations where I can phone-in sick but my teammates don't get informed. Or where my annual review is done in the US but the salary/bonus must come out of an Irish budget.

- "Ramping-up" on the product was pretty hard because if I got stuck in the mornings I had to wait until the afternoon to get some answers. Once that product learning curve is over and you become more autonomous it's much easier.

- There can initially be some resentment from US employees that their jobs are going to Ireland (an uncomfortable truth) and it can be difficult for me to know that an experience engineer has been "resource actioned" because I'm <1/2 the price. Particularly if they've helped train me up on the source code etc ;-(

- Many of my US colleagues are also remote / working from home but this is actively being discouraged. If fact, we all (US in-office, US working-from-home, and me in Ireland) had to attend a rather tactless meeting which listed the disadvantages to remote working: poor career progression, no management visibility, loneliness, poor team cohesion, communication problems etc. It's not like this was my choice!

- Tools: primarily email, instant messaging and regular conference calls. We also have get defect and version control notifications by email.

- I think things would be easier in a non-corporate setting because we'd have the flexibility to choose better tools: something campfire-ish, Git, some visual story planning / Kanban board, perhaps video conferencing over Skype, ambient webcams so you can see each other etc.

- I'm not sure if I'm a typical programmer: I dislike making phone calls and generally prefer to talk face-to-face with people. You get to pick up on subtle little clues (are they bored? are they stressed? are the busy? are they saying yes but only reluctantly?) which are lost in non-visual mediums.

Edit: I work in a very quiet open-plan office and this makes phone calls much harder. Ideally remote workers should have a private office so they are comfortable speaking on the phone. Particularly important if you want to conduct annual reviews over the phone!

- Having said all that, I'm seriously considering moving into remote freelancing or trying to find a permanent remote position but most job sites are focused on location-centric jobs. Any good pointers?