Last July, I went from being on site at the Ameriprise offices in Minneapolis to fully remote in Brooklyn. I’m now a big proponent of remote work (especially if you’re a developer), but it’s important to be realistic about how challenging it can be to stay focussed. The great freedom that comes with working from home has required me to develop systems and techniques that facilitate productivity in the face of many more available distractions. Below is a list of things that have helped me most.

  • Get your sleep schedule right. This tip is first on the list for a reason; as already noted above, distractions abound when you work from home and the will to fend them off does a tailspin when you’re sleep deprived. Decide on bed and wake times that you can manage consistently, have your last cup of coffee early in the afternoon, and set nightly reminders to start wrapping up your evening shortly before bedtime.
  • Have a routine. For me, this means getting up, making coffee and having a light breakfast. Those two things usually take less than 10 minutes and then I immediately start working. My brother also works remotely and prefers a longer morning routine that includes exercise, meditation, and coffee. Both approaches work*; what matters is that they’re consistent.
  • Set yourself up for success by limiting distractions. This one should be obvious, but it’s worth mentioning nevertheless. Keep your phone in the other room (on loud if you get work-related calls). Same goes for your personal laptop. Consider getting a browser extension like LeechBlock to limit distracted browsing.
  • Take strategic, time boxed breaks to recharge. For some people, that means a walk over lunch. For others, it’s a power nap. Whatever you need to get through the midday slump, make sure that you have it so that the second half of the day doesn’t go from bug fixes to reading the daily, 400-comment Hacker News debate on compiled versus dynamic languages or whether or not you should use an ORM for your next project.
  • Remember to move. I almost never sit for meetings or calls. Instead, I leisurely pace back and forth in my apartment. If I’m sure I don’t need my computer, I’ll even go for a brief walk around my neighborhood. In my experience, doing this also makes context switching back into programming significantly easier.
  • Strike when the iron’s hot. You’re not going to be feeling it every day. If you’re lucky enough to work at a place where you have a high degree of scheduling autonomy, embrace the funk. For me, that means sometimes working a half day and then tackling things on Saturday morning or Sunday night when I’m feeling more productive. This isn’t possible or desirable for everyone, but it may work for you too.

Working from home is wonderful, but it does require some practice and fine tuning to do effectively. It’s unlikely that all of these strategies will be right for you, but hopefully they can at least act as examples of the kind of systems thinking that is necessary to thrive outside the office.

*The latter approach- front-loading your day with non-work activities- is great if you often find your motivation sapped at the end of the day. I did exactly this when I was learning Elixir and it worked beautifully.