Doing this for more than 10years, living in Greece, working remotely in London. Large part of the company is spread accross Europe and Canada.
The first and most important thing you need to establish is trust with your employers and the team. Sounds easy but it is not at all. Trust that you're actually working (especially when you're stuck on something) and trust that they still value you as a team member (in other words, they don't forget you in meetings or other activities). Mind, that each side cannot see physically what the other side does and that makes trust establishment hard.
Downsides according to my experience:
Not everyone doing this, because most companies HR policy does not support remote working (I've received a hundred invitations in LinkedIn, but only one supporting remote working). It requires extra effort from the managers and they feel that they cannot control work when employees are not in the office. It is less risky to give you (and pay you) on a project or a task (so it is up to you to finish it on time), rather than hire you as staff.
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.