My last 2 years as a remote worker (from east coast for a SV company) have been the most productive in terms of software output in my life. I've been able to focus on the task at hand very well, and have been given pretty free reign to work on some large projects crucial to the company's product.

The most difficult part was having to deal with a dead-weight VP of Engineering (my boss) who had no process, knowledge, who could not think on his feet in person or over the phone. I had to talk to the CEO and product management to understand the next evolution they wanted, and to actively thwart fruitless conversations and diversions from the boss. I asked for wikis, better bug-trackers, or other tools to better coordinate documentation and work. Finally, after a new CEO and after the VP Engineering was fired about four months ago, things have improved. We immediately followed through on Confluence (great wiki for organizing and documenting engineering and other efforts), JIRA (OK bug tracker), transitioned to git with Bitbucket. Communication and recording of designs, etc., has improved a lot. The new VP Engineering hired a month ago has improved things more -- he's rational, understands the technology, is good at organizing effort, and doesn't asked stoopid questions. I no longer venture into inappropriate and unprofessional phone behavior, which I resorted to many times previously out of frustration.

I regretted so many times joining the company, and knew from my initial interview discussions with the VP Engineering that I shouldn't have joined in the first place. The salary and options were too good to pass up, though, and the problem addressed was interesting enough. I also knew others in the company and thought it might be fun working there. I spent many late nights working on stuff for a boss who could not appreciate the magnitude of what was being requested and delivered.

I also spent many late nights repeatedly diagnosing scalability and performance problems that were not my own but rather in a few modules I had to invoke. Even after being presented with clear evidence in myriad in-house and customer cases this prior boss could not clearly grasp the urgency of fixing the issues. The issue was live at customer sites for over eight months before they were finally fixed.

So ...:

- I miss SV friends after my move to the Southeast and haven't quite found "my people" here yet ... so I feel somewhat isolated

- I work very effectively and don't take liberties with schedule, but I don't overwork either unless there's an urgent issue

- I get to work from home or from a local coffeeshop, restaurant, or other venue -- I like this freedom

- I get to do a lot of my daughter's events in daytime, nobody's looking over my shoulder

- ... all these pros/cons were heavily dominated, though, by one big negative -- make sure you can get along with your boss, which wasn't my case

- why didn't I jump ship? it's hard to find another remote gig, and my terms were, I believe, pretty decent; the company has a chance of doing something decent and being worth something -- largely due to product area, C-level reputation, good sales -- the product has some shortcomings that will eventually be overcome

[edit: minor changes, formatting]