Working from home
December marks my 9th month working remotely for Counsyl and I thought I would write about my experience working from home.
Before joining Counsyl I was commuting between 300 and 400 miles a week, which meant 30 to 45 minutes each way. I found this to be totally manageable. I liked being up early (most of the time), I liked listening to books on tape during my drive, and most of all I loved when the weather permitted me to take my motorcycle. So my pre-working-from-home state of mind was generally pretty positive. If I had to pick a single negative thing, it would be scraping my car windows on winter mornings. Just thinking about it makes me cringe.
My first day working from home was in March, so it was still window-scraping weather, but I didn't even notice I no longer had to go outside. I was too busy stressing over whether or not my home office was going to be conducive to productivity. I was very worried about the adjustment from a normal job to a "work from home" job and on top of that I had all the new job jitters ("will they like me?", "am I capable of doing this job?", etc). I didn't even notice I was working from home at first because I was so busy trying to learn the new job.
I found that learning a new codebase can be done from home about as easily as from the office. Doing increasingly difficult bugfixes and features is a great way to get exposure to the code. The backend business logic for processing insurance claims and payments is more complex than anything I'd worked on previously in terms of states, branches, and number of moving parts. One of the most useful tricks I found was to find the unit tests for the code I was struggling to read. In that way I could see a minimal example of how the object was created, mutated, what ancillary objects were needed, etc. Of course sometimes I just had to ask my coworkers, which if I had been on-site would have been easier, but those times have been pretty rare.
As with any job, we do a lot of collaboration at Counsyl. Thankfully for me, most of the communication occurs on our GitHub enterprise install. We use GitHub for tracking bugfixes, new features, larger milestones, and we have a policy of code-review, so everything that gets checked in has always been reviewed. Code reviews helped me learn the coding, documentation, and testing standards. They also forced me to read other people's code, which led to further exposure to the codebase. Because GitHub communication is "asynchronous", it works the same whether you're on-site or remote -- another big bonus. It means I can ask a question if I'm stuck and while waiting for a response, work on other tickets or submit comments on somebody's diff. My coworkers can easily see what I'm working on, and vice-versa.
The one thing that's really tough is meetings. Usually someone will invite me via Google Hangout and I'll "attend" by watching through their webcam and listening through their microphone. When people are far away from the mic or talk quietly I'm sunk. When people outside the viewing angle of the webcam are talking it's disorienting. I also feel like I have a hard time jumping in and contributing -- I'm pretty much limited to speaking when spoken to, as an interruption from me completely disrupts the flow of conversation and spooks everyone. And of course, there are often WiFi issues ("you there? you're frozen... can you hear me?"). When this happens during an actual meeting I always feel embarassed and a little bit bad for the disruption. One-on-one meetings, on the other hand, work very well because we're both focused only on the person on the other end of the webcam.
The last thing I'll write about is friendships with coworkers. When I was younger my best friends always lived really close to my house, because it's easy to be friends with someone you can hang out with at a moment's notice. As an adult, my coworkers have taken the place of the kids in my neighborhood. They are the people I eat lunch with, get drinks with after work, go to parties with, etc. Working remote all but eliminates the possibility of the informal, easy "hangouts" that lead to deeper friendships. This is something I was kind of aware of beforehand, but it's been more difficult for me than I had anticipated.
What are my takeaways? Well, I think that companies can benefit by allowing remote workers if they're willing to make the investment in technology and tools to facilitate communication. If a company is willing to hire remote, their pool of potential employees is much larger and their remote employees will probably be grateful for the flexibility (I know I am!). For people who work remotely, or are considering it, you're going to have to work a lot harder to communicate with your team. And if, like me, your coworkers had been an important part of your social life, you'll have to make adjustments. Overall it's been a good experience and I'm willing to accept some of the challenges because it means I can work for a company that I like, doing a job that interests me.
Commenting has been closed, but please feel free to contact me