I have a job as a programmer, but I'm not in the office. I live in a small town in Arizona, but my boss (and the main office) is in Washington, next to one of the major tech hubs of Seattle. Thanks to technology, I can e-mail updates to my boss, use instant messenger to ask questions of my coworkers and clients, and even get in on video chat from time to time.
I work from home. This has some immense blessings, especially since my wife has been really sick the last couple of weeks and I've been able to take care of her and the kids without using up my vacation time. While I work a typical 8 to 5, we're not bound to it since code can go on a web server at any time. We prefer to do our major changes after hours so that if something happens it doesn't affect business.
I'm working, but not from home at the moment. I'm at the library, since there's a weekly reading program my kids love to go to, so I can work from my laptop. Thanks to technology, I can keep a copy of the web site and database on my laptop, synchronize the code with any coworkers, and push the code to the servers when needed.
I don't actually have a copy of my current website and database that I'm working on. My current client has a pretty big infrastructure, so I use my computer and access their network from a virtual private network. I use this in combination with a remote desktop connection to function as if I was sitting on a computer in their offices.
Except that there's not computer for me to access there. I'm actually connecting to a virtual machine, which is a "computer on a computer" that sits in the office of the programming lead. When I'm done with the project they'll probably blow away the machine (ultimately it's just a file) and make way for the next project at hand, recycling the same computer resources.
Sure there's a lot of responsibility and a whole heap of self-discipline to make this happen, but man... technology is crazy cool!