Farm Development

Some Tips On Working Remotely

I've been working remotely from a home office with Mozilla since about 2010 (4 years so far) and although it has challenges I still enjoy it. You have to have some discipline and a routine. Matt Gemmell's article on this has excellent pointers on routines and setting up an isolated work space at home. I wanted to add a few things to his post:

You most likely collaborate with people on a daily basis. Optimize for this. I can't think of many jobs (besides maybe bootstrapping a startup) where you're not directly working with others towards a common goal. Collaboration is the key to success in any company that has more than one employee.

Keep all communication channels open constantly while working. Use IRC (or something) to communicate in realtime as needed. I also recommend using an IRC bouncer so that you can catch up on the last couple minutes/hours of IRC and respond to direct questions. Something like ZNC or IRC Cloud will replay the messages you missed when you reconnect to IRC and will let you stay constantly connected on all devices as you move around. The nice thing about text-based chat is you can dip in and out of it while working without much effort. Switch this off when not working, of course, unless you need to be on call for something ops-related. Ideally you'd want to figure out a fixed schedule for being on call just as you want a fixed work schedule.

Speak to people on video whenever you need to speak to them. Face to face conversation is absolutely essential when you are working remotely. Not only will it fulfill your basic needs for human interaction it is also crucial to interact with people's body language and facial expressions in a conversation. It should also be natural for anyone on your team to be able to cold call you on a video-enabled device at any point randomly during your work day. When remote, it's not bad to overcommunicate about when you won't be at your desk. You never know when someone might need to reach you. If a remote employee becomes unreachable this is really hard on the team and I've seen it lead to termination.

Time zones. Time zones! Thanks to the ubiquitous Internet, time zones are perhaps the one hard blocker to working remotely. You have to be able to sync up in the same time zone otherwise your power to collaborate will quickly dissintegrate. Sadly this excludes some regions of the world for you to work with/from but it's something you have to consider when hiring or forming teams. This time zone tracking site I just found looks nice for syncing up. Technology does offer a lot of tools for asynchronous collaboration so you might be able to make it work. It's just harder.

If you meet one on one with your manager (you should!) insist that this always happens at a regular interval like once a week or once a fortnight at the same time. Even if you don't have anything to say to each other, meet anyway. Seriously. It just helps the juices flow; this is essential when working remotely because you don't get as much "water cooler" or hallway time as you would in a real office. By meeting regularly you will be reminded of things to talk about that you forgot you wanted to talk about. It will also be easier to talk about hard things like conflicts you have with co-workers or whatever else happens in work life.

Catching up on email, bug reports, and administration stuff can zap your productivity. I try to do this toward the end of the day rather than the beginning of the day. Some days are better than others ;) That's life.

Work at a standing desk. You won't regret it. For me it made me feel more energized throughout the day and made me realize that sitting all day had been straining my neck and back.

You may notice that some of this applies to working in a real office just as much as a remote office. That's because they really aren't too different. If you're not motivated while working remotely chances are you won't be motivated while working in a real office either. As Matt's post mentioned: make sure you love what you do!

If you already work in a real office, you probably also interact with some remote co-workers (or you will do so soon). Consider some of these points to help you better interact with those co-workers.

For discussion / feedback: https://twitter.com/kumar303/status/463723064979492864

Note: HTML tags will be stripped. Hit enter twice for a new paragraph.

Recent Projects

  • JSTestNet

    Like botnet but for JS tests in CI.

  • Nose Nicedots

    Nose plugin that prints nicer dots.

  • Fudge

    Mock objects for testing.

  • Fixture

    Loading and referencing test data.

  • NoseJS

    Nose plugin that runs JavaScript tests for a Python project.

  • Wikir

    converts reST to various Wiki formats.