DevOps Zone is brought to you in partnership with:

Felix Dahlke is a software developer particularly interested in games and open source. He writes most of his code in JavaScript, C++ and Python. Felix is a DZone MVB and is not an employee of DZone and has posted 16 posts at DZone. You can read more from them at their website. View Full User Profile

Working Remotely: The Best Thing I've Ever Done

  • submit to reddit

It’s been six months since I switched jobs and began to work from home most of the time. It’s downright amazing, the best thing I’ve ever done. Seeing my kids grow up and being able to support my seriously overworked wife (our boys are 2 and 1, that’s quite the challenge) is great for all of us.

As a programmer, I’m in a very good position to work remotely: We tend to be quite good at communicating online (especially those with an open source background), we can improve the tools we use or build our own, and we’re in high demand right now – many of us can just leave for greener pastures when their company doesn’t let them work from home. Even if you think your company is awesome and it’s reasonable of them to ask you to be in the office every day, it’s probably not. What this really says is that your boss thinks you won’t work properly when not being watched. Do you really want to work for someone like that? I sure don’t. (Sometimes it’s really difficult: my last job for example involved programming for huge, expensive parcel machines. But that seems like a rather unusual case.)

How we do it

My company employs some people in Europe and some in the US, and most of us don’t work fixed times, so synchronous communication is not always possible. We have an IRC channel where we usually announce when we’re there and when we’re gone, and have quick technical discussions, but it’s not really enough. So a lot of our communication was happening via email, which can get messy. We have recently set up Discourse for internal asynchronous communication, and it’s working much, much better.

We use Trello to communicate what we’re working on. It’s voluntary, but most people do it. It is quite important to communicate what you’re working on when remoting. But the single most important thing we do to make remoting work is mandatory code reviews. We use Google Code Review (it’s basically Rietveld on a Google Apps account), but there are other promising options like Gerrit or GitHub pull requests. If you’re not used to doing code reviews, I really think you should try it. I’ve never seen any other process increase code quality and communication like reviews do. And it’s not really much overhead, even a review containing one or two days of work is usually done in 10 to 30 minutes. And time spent understanding the code base is not at all wasted time in my book.

Since we’re a distributed team, we need all that to work. You can get away without tools for asynchronous communication or code reviews in an office, but I’m convinced setting these things up is quite beneficial even there. What if your developers are sitting in more than one room? In my experience, there’s a lot of walking and phoning and meetings going on, that’s highly distracting. Stuffing lots of people into a single big room is a common solution, but that’s a change from bad to worse: I found it insanely distracting to work in a room with more than two other people in it.

Not all of my new colleagues work remotely, but almost all of the developers, incuding the lead developer and CTO. The remaining people usually work in the office, and everyone living close to the office is encouraged to join the weekly status meeting there. I’m almost always going, it’s really good to get together and see some people in person or do some brainstorming every now and then.

All the remotees have a call the day after the status meeting in the office, to have someone who’s been there talk a bit about what’s going on in the rest of the company, and for everyone to share their status.

How I do it

Before I started my current job, I had to leave home almost every day for about 20 years straight. So I was a bit nervous that this big change in my life would confuse me, or that I wouldn’t be motivated enough to do a good job, or that I just wouldn’t like it. Turns out none of that happened, it’s been the happiest time in my life so far. Getting to see my wife and kids whenever I want to, not missing any milestones and doing my share of parenting is brilliant beyond words. If you’re a parent, please consider trying this if you have the chance.

Even after six months, I haven’t fully gotten used to this vast new freedom yet. I just need to do about 40 hours of work per week, it doesn’t matter when or where. Yet I still usually work about 4 hours straight, have a lunch break and then work another 4 hours, just as I used to do it in an office. But when the weather is really amazing, like when it first snowed last year, I do leave for a while. Or when one of us needs to go see the doctor, that’s much less stressful now then it used to be.

I’m not really working in a fixed place anymore, I’m frequently moving from the study to the living room, from the table to the sofa, or onto the balcony when the weather is nice. I also sometimes work at a cafe close to the office when I arrive early for the status meeting (didn’t feel the need to ask for a key so far). I think if I didn’t have a family, I’d be working in a cafe on a daily basis. Even if there’s lots of people in it, it’s quite different from a crowded office. Don’t really know why, maybe because I can be sure that nothing that’s being said is relevant to me.

I also noticed changes in the way I consume information. I hardly read Twitter as thoroughly as I used to anymore, and I’m seriously behind on my RSS feeds. I’m not on a crowded train with a crappy internet connection anymore, I’m here at home where all the things I like are. Why read Twitter for 10 minutes when I can use the time to play with the boys, or play video games, or work on a private project? The same goes for procrastination – why surf aimlessly around when I need a break from work? There’s so many better things I can do.

All in all, I’m really enjoying the remoting, I’m quite determined that I won’t work in an office again, if I can help it. And given how the number of remote offers for developers seems to be rising steadily, I don’t see why.

Published at DZone with permission of Felix Dahlke, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)


Diego Zanella replied on Wed, 2013/03/20 - 7:54am

Thanks for sharing your experience. It's great to see that there are like-minded people out there, who also think that commuting is a waste of time and that being in the office doesn't increase productivity.

I quit my last office job in 2011 and I've been working from home since 2012, and I wouldn't be able to simply switch back to office life, knowing that my two young kids are growing up without me. Sure, sometimes they can get in the way, but any Developer worth his salt can reorganise his time to accommodate family needs. At the moment I'm working on my own, but I'll definitely evaluate the tools for Code Review, as I think they will be an excellent way to increase quality and productivity.

Felix Dahlke replied on Wed, 2013/03/20 - 9:03am in response to: Diego Zanella

Sure, kids get in the way sometimes. But quite frankly, colleagues get in the way more in my experience :) And it's much more difficult to just close the door or tell them you're busy.

Diego Zanella replied on Wed, 2013/03/20 - 9:16am in response to: Felix Dahlke

That's also true! Everywhere I worked, colleagues thought of others being an always available source of anything. Knowledge, gossip, help, you name it. The more mediocre the colleague, the more often he was interrupting the others "just a minute" for no real reason. The peak was reached when somebody brought in a radio and started listening to it (no earphones), then someone else did the same, then a third person. We ended up three radios on all the time, on three different channels.

Did I mention that the office was a full, flat open space, without cubicles? I wonder how comes that any skilled developer "disappeared" an went to work in the meeting rooms, or even in the basement...

Gonzalo Arrivi replied on Wed, 2013/03/20 - 12:00pm

Thank you very much for this entry,

I'm still a junior, so you know it's not that easy to find a "great" job at this stage, but I've been thinking a lot about remote working as a mean to improve life (and even work) quality.

You have given me some more reasons to think about this more thoroughly. Thanks.

Alicia Monteith replied on Wed, 2013/03/20 - 3:40pm

 I've been working from home part-time for the last 6 years... since my first child was born. It's the only way I've been able to keep my skill set up while our family is young. The bonus for the companies I've worked for is that they only pay for programming time, and then get lots of thinking time for free! As I'm the primary care giver I only take on non-time critical tasks... all those little things companies really want to do but just don't seem to find the time. To be honest though, I'd like to work in an office for a bit now....not every day, maybe just one or two mornings a week, just to have that adult contact. Although, working from a cafe sounds pretty tempting too.

Alex Garrett replied on Wed, 2013/03/20 - 8:42pm

@Felix first thanks for sharing.

> really says is that your boss thinks you won’t work properly when not being watched.

I take pride in my work and enjoy what I do, so having a manager, or client, feel that I'm not able to manage my work / time, conveys the same message to me (after some 30 years, you think this would be more readily afforded, but many managers still seem locked into 'bums on seats' thinking).

I decided to work as an independent, but take heart from your own experiences. It's not just the personal advantages which you describe so well, but my productivity and satisfaction benefits immeasurably, it simply sky rockets! 

Though it may be obvious to others, I'll spell it out. I have two extra hours retrieved from commute time, that's before I add the extra work done in a quite controlled environment (no distractions, no interruptions, no coffee chats, no lunch queues, no lost time to the sometimes overly loud office noise of others). Design, coding,... requires silence!!!

Also thanks for mentioning the tools that assist you with your remote projects, some of which I use, some I will now review. Such sharing is invaluable :-)

Tools I like for working remotely? I like being able to host test and production servers via the cloud! I can make my work readily visible to clients, and if the likes of larger App Engine projects, I can get platform support covered by others (thanks Google). 

Unfuddle has proved a good project management system, also hosted, so I can share online with a client, and my git repo housed there gives me offsite backups too! 

Here's hoping more companies come to the party, as I really hate the idea of giving up my remote work, if my projects ever run dry. 

Felix Dahlke replied on Tue, 2013/03/26 - 7:49am in response to: Alicia Monteith

Great to hear from a primary care giver who's remoting, that's one thing companies are really missing out on when they insist on everybody being on-site. I readily believe that it can get annoying to not have much direct contact with adults for a few years, though. Maybe the cafe thing will do the trick, I for once feel much more professional when I do that :)

A job has to work for both sides, that's what all this is about I guess. For the employer, it's probably the best thing to lock all employees up in a cozy little ecosystem where they work almost all the time, and if they don't work they think about work or talk about work. Like an aquarium. That's basically the Google-way.

But if your company doesn't have the resources to pour loads of money into recruiting efforts and Google-like reputation, that's probably not going to work. You'll have to move towards a middle ground.

I find it very inspiring how GitHub is certainly in a position to go with the Google-style put-people-in-an-aquarium approach, but instead decided to make their employees happy, and goes to some lengths to be family friendly. That's not only nice of them, it opens up a much larger, much less contested talent pool.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.