I live in a smallish city (pop. 40k) in Southern Oregon where I've been working remotely from for the last ~6 years.

I'm a front-end web developer by trade and a single father with two young kids. My family has lived in this area for a decade and I want my children to be able to grow up around them, so I am not open to relocation. In 2006, I was working for one of the only major employers in the city that could really use an in-house developer, but really didn't enjoy the work or the environment. I wanted to find a new opportunity, but there just weren't many other options, so I ended up working there for two years.
In 2008, I found an ad on the San Francisco craigslist job board that sounded perfect for me. Heavy HTML/CSS work, some JavaScript, and a product that interested me much more than my current employer. They didn't mention anything about remote work (it wasn't advertised much then) but I figured it might be worth a shot, and sent them my resume and a cover-letter. Two days later, the manager of the web department called me for an interview, and after about 20 minutes of both general information exchange and specific questions related to the work I would be doing, I was offered the position. Phone interview for ~20 minutes and I had a job.
I loved it. I worked for that company for 4 years until, last year, they had to downsize and laid off 90% of the web team, as well as many others. I was incredibly disappointed, but happy to have had such an excellent employer for so long.
I found out in my subsequent job search that my previous interview process was a very rare occurrence indeed. It was incredibly difficult to find remote front-end work that didn't entail knowledge of technologies that I was too unfamiliar with to be marketable. I did finally find an another position, this time with a company based in New York. Though it's not really what I had before, I'm happy that I get to code again.

That's my story, the short version anyway.

I will say that remote work really isn't for everyone. You have to be very disciplined and self-regulatory. I personally am content most days with only my own company and my kids when they get out of school. But if you are well-suited to remote working, it can be amazing. I have a very comfortable home office with everything I need to stay creative and focused. When I was working in an office previously, I had a shared desk in a room with no exterior windows. Now I have 3 exterior windows looking out at a beautiful Southern Oregon horizon -- trees, mountains, etc. It makes a world of difference.

If you're considering working remotely, I'd suggest a few things right off the top of my head.

1) Personal upkeep is still important.
Working from home means potentially fewer opportunities to get exercise. Make sure you take regular breaks and take short walks throughout the day.
Also, make sure you have healthy snacks to tide you over during the day. I find that it's much more tempting to overeat when you work in the same place you store all of your food. I personally enjoy baby carrots and celery sticks.

2) Maintain contact with other humans.
Grab a drink with your friends, join a meetup group, or befriend interesting people at coffee shops. It's easy to become out of touch when your only human contact are those living in your house and the occasional text/video chats with your co-workers.

3) Set your hours and keep them
For the most part, my employers have just expected me to deliver my work on time. Even so, I still wake up at 8:00 every morning, make my cup of coffee, then get right to work. I take a short break at 10:00, 12:00 and 2:00. I try to stop working around 6-7:00.

4) Communicate well
The adage, "Out of sight, out of mind" is very true -- when your employer/client/co-workers don't know what you're doing or when you're doing it, it can reflect poorly on you, even if you're actually working diligently. Ensure everyone is aware what is happening and when, and promptly respond to any emails, even if it's just a confirmation that you got the message.

That's all I've got for now. Feel free to let me know if you have any other questions!