RSS 2.0 Feed
RSS 2.0

Atom 1.0 Feed
Atom 1.0

  The Work-at-Home Developer’s Guide to Happiness 

As a long time work-at-home developer, I’ve come to realize over the years how important it is to have the right work routine and balance to remain happy in both your professional and personal life. I’ve worked from my home 100% of the time for the last 6-7 years and had often worked from my home in spurts before that. Without question, it requires the right mindset and dedication. There’s an upside as well as a downside to working from home, but with the right routine you can be successful at it.

There are a lot of people who telecommute. In my case, I don’t even live in the same state that my company is in. My company is a Minnesota-based consulting company, but I live in Arizona. I work with my development team remotely. We’ve gotten really good at working online together via conferencing and sharing in-between our in-person visits. I completely love working from home. I feel it gives me the opportunity to be more involved in the lives of my kids, not to mention how great it is to have lunch with my wife every day. No commute, gotta love that. It provides me with opportunities in my personal life that I wouldn’t get otherwise. The downside? It’s a big one. The lack of face-time and interaction with other developers can be extremely difficult. If you’re not careful, your work life can bleed over into your personal life to the point where it feels like you’re working all the time. No matter how much you like your work (and I love mine), that can get to anyone.

The following things work for me. They might not work for everyone, but regardless, find something to give you the right balance in your life so you can maintain a productive and meaningful work life and a happy home life.

1. Establish Your Work Mode
Get up and get ready for work. When you know you’re not going to be seen by others it’s easy to just roll out of bed and wander into your office. For me, it helps me to get into "work mode" if I make it something I actually take the time to get ready for. Take a shower and get dressed for the day. Sort of like a ritual that puts your mindset in-line with what you’ll be doing. I try to start my work day at the same time. Make it an official time to get focused. Notice I refer to this as "work mode", not "work time". As a developer, I think it is OK to be obsessed about what you do. I mentioned before that a good developer is one that has passion for the craft. That’s OK. It’s OK that we spend more than our 8 hours a day focused on writing code. It’s who we are. However, you still need that formal time to get your head in the game and be productive for the code you get paid to write, just as if you were heading to an office.

I like to also have an official end time, although this is my official end time for work mode. It’s my end of work day. I leave my office and get my family time. Help the kids with homework and spend time with the family. Later, I’ll return to my office to write more code and geek out some more, but this is just play mode. I’ll allow myself to get distracted and do something I wouldn’t normally have the time to do like learning some new thing just for the fun of it.

2. Make Time to Get Out Of the Office/Home
You no longer have a commute. You no longer get that time to drive home and let your mind unwind after work.  You don’t get to go out into the big room (I think they call it "outside") and see the sun. Make a point to get out of the office on occasion during the day. I like to take my 2 year old son during the day and walk to the mailboxes and get the mail. I try not to keep some things like soda at the house so if I feel like one I run to the convenience store. Taking breaks is a good thing. I can’t tell you how many times I’ve been stuck on a problem, so I get out of my office, go stretch outside and come back. My mind reboots and I am thinking clear again. I feel refreshed. Don’t work through lunch. That one can be hard if you work in an office, but I’ve found it to be even more difficult when working at home.

3. Keep Your Workplace Organized
It goes without saying that you need a separate and "official" workplace at home if you plan on working there. However, make it an organized place. I am a big believer that a cluttered workplace hinders your ability to concentrate on your work. Don’t use the closet of your bedroom if possible. Don’t let your office become your storage area, cluttered with boxes and crap. Make it a place that is free from things that will obstruct your ability to create.

4. Get Rid of Distractions
I've talked about this before. Don’t let the fact that you’re at home make you feel OK with turning the TV on while you work. Just because there’s no chance that your boss could walk into your office at any moment, don’t allow yourself to do things like start up a game while you’re in work mode. There’s nothing that will prevent you from being productive like that. If you’re not being productive then you’re not giving yourself the chance to be a better developer - although you might get better at video games :-)

5. Create a Network of Developers
You need to have other developers to talk to. This is a must. Local developer groups, nerd dinners, these are all great. However, even more than that, make sure you have other developers on IM or speed-dial. Your ability to learn new things grows exponentially when you have other minds to learn from. You’ve increased your brain’s computing power by distributing your learning among your other developer friends. If you don’t have any, seek out the local developer groups and you’ll be sure to meet some.

6. Challenge Yourself to Improve
Make goals for yourself to improve as a developer. When you work with other developers, there is a constant knowledge exchange. You’re always learning. Even if it is just small things, you’re constantly learning from what your coworkers have learned. You don’t want to lose out on that because you work at home. You’ll have your network of devs to talk to, but ultimately, your ability to improve as a developer is up to you. You have to make your own time to sharpen the saw. If you’re not trying to improve as a developer - then you’re probably not going to.

7. Take Advantage of Working From Home
What good is it if you don’t let yourself enjoy the benefits? You work at your house, enjoy it! Let yourself take time to see your kids. Let yourself spend some extra time with your spouse. The time that others are spending drive to and from work you get as free time. That’s all extra, use it to enjoy your completely super-awesome scenario of working at home and love it.

I love working at home. In my book, it is the greatest thing ever. If you work from home, make some structure to ensure it is a productive time. If you don’t work at home, so sad for you :-)


Leave a comment below.


  1. dzone 8/3/2008 7:50 AM
    The Work-at-Home Developer's Guide to Happiness
  2. Alvin Ashcraft's Morning Dew 8/3/2008 7:50 AM
    Pingback from Dew Drop - Dew Drop - August 3, 2008 | Alvin Ashcraft's Morning Dew
  3. Rob Bihun 8/3/2008 8:45 AM
    #5) Twitter and other .NET Developer blog sites have also been invaluable to me as far as learning new tricks techniques and problem solving.
  4. Ryan Farley 8/3/2008 3:18 PM
    Hi Rob,

    I completely agree and I am kicking myself for not mentioning Twitter in the post. That has been a completely great resource for me to feel more "connected".

  5. Casper Bang 8/3/2008 6:15 PM
    Get a real work phone with conference and headset support etc. I use a wireless plantronics connected to a Cisco IP phone. It allows me to teleconference with the head office and colleagues from anywhere in the house while folding clothes etc.
  6. 8/3/2008 8:26 PM
    You've been kicked (a good thing) - Trackback from
  7. Jason Haley 8/3/2008 8:34 PM
    Interesting Finds: August 3, 2008
  8. 8/4/2008 9:01 AM
    Gravatar - Filozofické okienko 2008-08-04
  9. JD 8/4/2008 12:08 PM
    One of the benefits from working in an office is that usually you get to learn something new from other developers in the proximity. How do you keep learning something new while working from home.
  10. Ryan Farley 8/4/2008 12:14 PM
    Hi JD,

    I completely agree. That's sort of what I was getting to in #5 & #6 in my list. IMO, that is one of the biggest drawbacks to working at home. You can completely miss out on learning from the other devs that you work with every day. That's why it is so important to fill that void with other opportunities to learn in other ways.

    Thanks for the comment.
  11. Robert S. Robbins 8/4/2008 1:36 PM
    I used to work at home all alone so I would get lonely. However, I would watch 3 minute videos on YouTube and got involved in the community there. They kept me company. Now I'm working on a really exciting project to customize a social networking site for my online friends.
  12. Ryan Farley 8/4/2008 1:39 PM
    Hi Robert. Watching videos on YouTube, that could likely make me less-productive :-p

    I do understand where you're coming from. Sometimes working at home it is nice to hear some noise. "Too quiet" can get to me sometimes too.

  13. Benny 8/4/2008 3:28 PM
    Nice one, although I find it hard to keep obeying all this rules..
    I do agree with the 'work mode' rule. it did have an positive effect on my work, getting out of pj's and putting a shirt on..
  14. Germán Schuager 8/4/2008 7:28 PM
    Great article!

    I've been working at home for 2 months now and one of the biggest drawbacks to me is that it becomes very easy to stay in "work mode" the whole day.... I'm working on that :)
  15. Ryan Farley 8/4/2008 9:47 PM
    @Benny - no doubt. Making the rules is easy, sticking to them is where the real discipline is needed.

    @Germán Schuager - Thanks for the comment. For me it's the same. Work Mode tends to stretch into the night. I do try to have an official "end time" so even though I know I am going to continue writing code, I allow myself to get distracted with other things to keep my happy/sane.

  16. Manuele 8/5/2008 4:35 PM
    very useful suggestions. I've just moved and I've been working at home since few months. I'm still trying to find my way to organize my daily work. Yours could be a good starting point. Just let me add (from my very short experience) that having a well-organized to-do lists set is also another one. Early population of them, a correct (even later) splitting by some (maybe custom) criteria and trying to respect what you write there is really important. I have a sort of "someday" list and each morning I get from there the most urgent three tasks I think I will be able to satisfy in the day. Then, having an official ending time is the hardest part.. but I promise I will work on this :-)

  17. Will Asrari 8/5/2008 4:44 PM
    It's nice during the spring / summer when I can move my office (laptop) to the hammock out back.

    During the winter I move the office to the recliner in front of one of the woodstoves.

    As far as learning new technologies, I try to make a point to visit sites such as DotNetKicks & countless others to read up on what's hot or not. MSN chat with developers from around the globe is good when you are stuck on a problem and other developers are online. Blogging about findings from the aforementioned helps me to solidify these concepts.

    One thing that I've found difficult (and I've been working on) is sticking to an end-time.

    Some weeks are easier than others, but I really try to "sandbox" at least 4 hours a week with something new.
  18. Some.Net(Guy) 8/6/2008 2:35 PM
    What do you do if you're the lone developer in a small company and the only one of your friends and associates who is a developer? How do you stay focused when your research takes you to endless blog links? If I'm having problems, I'll start searching and before I know it an hour has passed and I'm now on a blog that has nothing to do with my initial query...
  19. Ryan Farley 8/7/2008 3:53 PM
    @Manuele @WillAsari,

    Definitely, the "end time" (as in actually having one) is always a problem. Will, I like to take the laptop and sit outside as well - but only when the kids are in school (and the weather is nice, I live in AZ so most of the year too hot for that)


    The best thing IMO for the "lone developer" is to get to know more developers. Even if not co-workers, I am sure that there is somewhere you could join up with others at a .NET user group, or even online. Networking with others is crucial. Twitter, frequenting the same blogs (different than researching a specific topic), etc are all ways to just get to know other devs.

  20. Milan Negovan 8/9/2008 9:10 AM
    Ryan, good to see you blogging again! I've kept your feed in the aggregator all this time just in case you decide to blog again. :)

    About those IMs... If you want to hook up on MSN/Yahoo/ICQ/Skype, just shoot me an email.
  21. Ryan Farley 8/9/2008 4:12 PM
    Thanks Milan, it actually feels good to be blogging again. Glad to know so many are still subscribed after not posting for so long. Now, we just need to get you on Twitter :-)

  22. turkey 8/12/2008 10:12 AM
    thanks you . perfect and Beautiful docs.
  23. Alan 8/12/2008 8:50 PM
    I surfed in and read your article -- excellent job, very well said. Thank you!
  24. Ryan Farley 8/12/2008 8:51 PM
    Thanks Alan.
  25. pixels2soundBytes 8/26/2008 11:30 AM
    Pingback from pixels2soundBytes Show #3
  26. BCoelho2000 10/11/2008 1:15 PM
    Hi Ryan!

    This is my first visit and the first post from your blog for me... and for me this post is priceless.

    I have a day job as software engineer but that's not enough for me.

    I have also a personal project which is a web application for my wife that will, hopefully, help with her business.

    So I know what are the challenges of working at home.

    I've set up a plan using MS Project where I've defined my working time together with my wife.

    I think that scheduling the working time together is the secret to sucessfully balance work and personal life.

    Thank you for your tips Ryan and keep up the good work!
  27. PS3 Headset 3/12/2009 2:51 PM
    to become happy, i hear my ipod (very loud). after 10minutes i am so motivated (you can't believe it ^^)
  28. Pat Kash 4/10/2009 8:39 AM
    Great article. Really appreciate your thoughts and the way you share knowledge. There is a saying/poem in an Indian language, "One thing that increases/grows as you share is your knowledge and it can't be stolen". Keep up the good work and GOD Bless you.
  29. Crash Avoidance 4/25/2009 9:30 AM
    I've been working from home 10 years now. In the beginning I had absolutely no limit, worked night and day (with pajamas on), and even forgot to eat and drink at times. I then developed a set of rules similar to yours. But recently I let go one of the most important rules, the one about pre-defined working hours. Now I give myself permission not to work when I don't feel like it, or when there's something pleasant in my private life, and to stop working whenever I get stuck, or feel progress is not what it should be. Strange enough, I work about the same amount of hours, but a lot more efficient, and really enjoy it a lot more. Especially the fact that I'm there for my family, not just when they need me, but also to enjoy the unexpected pleasant moments of life, is really satisfying.
  30. vimal yadav 7/13/2009 4:19 AM
    I've set up a plan using MS Project where I've defined my working time together with my wife
  31. Weeds 4/29/2010 1:53 PM
    very useful suggestions. I've just moved and I've been working at home since few months. I'm still trying to find my way to organize my daily work.
  32. Work at Home Dad 5/21/2010 10:54 AM
    This is a perfect guide. As a work at home developer, I really need this one. Thank you for sharing it.
Comments have been closed on this topic.



Also see my CRM Developer blog