Not quite 6 months ago, I got the offer to work for Black Pixel. My husband chuckles when he tells of the stunned grin on my face as I walked into the room after accepting my dream job: working from our Colorado mountain home for one of the best firms on the planet.
So, what's it like?
Far from being the only remote team member on the projects I've worked on so far, the teams are often composed of people from many time zones, not just across the U.S. and Canada but into Europe and South America as well. A delightful mix of accents and experience all come together to create great products for some really cool clients.
Not only am I not the only remote team member, I am usually not the only female member, either. A quick count from our roster page told me almost 16% of the staff are women, spread over the disciplines - development, design, QA and operations. This is a whole 'nuther blog post, but I'm not unhappy with the current level. I feel very valued for my abilities, gender irrelevant.
I've been asked if I feel isolated from the rest of the company. Far from it, actually. Black Pixel is well versed in distributed team management and I have a constant patter in our private chat rooms to keep me company. As I type this, 33 people are currently logged into the main room, 13 in my current project's room, 15 in our technical geek chat room and 1-on-1 chats with 7 other people are open, including our very cool CEO. Debates on the best Scotch, which new game platform is the most promising, discussions of music (terrible ear worms, oy!), pictures of our pets... at times the general chatter is enough that I have to hide it so I get my work done. Several of us have remarked that we hardly interact on other social networks now - the company chat is that fulfilling. We greet each other in the morning, wish each other a great evening, commiserate with life's tough spots... support each other, in other words.
If I'm struggling with a technical problem, the "code review" chat room is there to help me, with the company's most experienced people (which is not to be underestimated as we have some amazing talent) jumping in. Several times we've discussed one of my issues and have come up with a fix that I wouldn't have figured out on my own without days of banging my head and going down blind alleys. Giving back to that forum is highly rewarding as well (helping to dispel that demon whispering "Impostor!" in my ear.)
We conduct a daily SCRUM call for the entire company, which is a super-fast check-in from everyone who can dial in at that time. Usually lasting less than 10 minutes, it's fun to hear what everyone is working on, what's wrapping up, coming up, needing more people, etc. The time is such that our European contingent can report at the end of their day while the folks in the Seattle headquarters are just starting theirs, which suits me fine, being not-a-morning-person. Most of the projects use a daily Stand-Up call as well. In my past life, these meetings were an opportunity for project management to brow-beat developers into working weekends and meeting unreasonable deadlines. Not so anymore - I find these meetings to be a valuable time to touch base with everyone on the team and to convey any issues we may see coming. Some of these meetings are done via video chat, so I get to "see" my teammates (ack, makeup, quick!).
Sharing of knowledge, files, designs and code is all done with distributed resources - Dropbox, Github, Google documents, Wiki, etc... all put to use to make sure the information I need to do my job is there when I need it. We make great use of issue tracker software for tasks - JIRA, FogBugz, etc. We have some superb graphic artists and designers - what a luxury to me to have these pros on the team! And our QA people are top-notch - I've said a few times "Damn, she is good! I'd never thought of trying that!"
Recently another developer and I did a bit of pair programming. Previously I have despised this as looking over someone's shoulder and watching them type and run the mouse made me a bit crazed. Remote pair programming, however, is quite different. My agonizingly slow DSL connect won't let me screen share, so it was conducted via chat while we both looked at the same code base. He made a change and pushed it to Github. I pulled and added my 2 bits then pushed it up. Back and forth a couple of times and we had a working update.
There are the other benefits to being remote that one thinks might be great - and they are. I can work anywhere there is power and an Internet connection: my kids' school, a local coffee shop, a plane, and even from the deck of a Caribbean villa (truth). I joined the team just after the severe flooding in Colorado and my first 2 months were spent in a small rented office near my kids' temporary school. Now that life is normal again, the wear and tear I put on my car are minimal - my commute is measured in steps, not miles. The Black Pixel philosophy on time off is flexible enough that I can balance what I need to do in my personal life and create great applications at the same time.
I guess I really don't have to say it, but I'm very honored and feel extremely lucky to be on the Black Pixel team.
One negative about being remote - I'd love to be able to join the Seattle group for that 3PM walk to get coffee!