Font Awesome Free 5.13.0 by @fontawesome - License - (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
Skip to main content

Work-life balance

How to improve your work-life balance and why it's beneficial to both you and your company

Don't care too much

If you don't care about work one single bit, you probably won't do a very good job. However, a lot of people have the the opposite problem: they care too much about work.

Caring too much is bad for both you and your company:

  • It makes you feel overwhelmed and stressed
  • It makes you more likely to get sick, burn out or quit
  • It prevents you from getting the downtime you need in order to actually be productive at work
  • It wastes energy on feeling stressed, disappointed or frustrated instead of allowing you to use that energy for actual work
  • It prevents you from recognizing tasks that are not important and thus not an effective use of your time

By caring just enough and stressing less, you will actually get more productive work done and you will be able to better identify what the most important tasks are.

Caring just enough


  • Find the point where you're still doing a great job, but in a relaxed way without unnecessary stress
  • Realize that you are not your job
    • There's more to life than work
    • Your professional efforts and results do not define who you are

Prioritize what to care about

  • Take a step back to see the bigger picture and find out what's really important
  • Not all tasks or problems are really worth caring about
  • Not all issues are things you can do something about
  • Some things can easily be ignored, either temporarily of permanently
    • Don't waste time and energy on unimportant details that will likely go unnoticed or sort themselves out
  • Your colleagues and manager can help you decide what the real priorities are (and help you get them done)

Pragmatism and boundaries

  • Accept that you won't be able to do everything, or at least not as well as you'd like
  • Would it really be that much of a disaster if you mess up a small detail, miss a deadline by a day, ...?
    • An annoyed or impatient customer is still not the end of the world
  • Set proper boundaries and adjust people's expectations of you to what you think is reasonable
  • See also Pragmatism and imperfectionism
  • See also Expectation management

Don't work long hours

The research is clear regarding working long hours, especially on a consistent basis:

  • It does not yield higher total productivity than working normal hours
  • It often even yields lower total productivity than working normal hours

Both for factory workers and knowledge workers, there have been studies that demonstrated that limiting working time makes people more productive and reduces the amount of expensive mistakes and accidents

Some reasons why long hours don't work:

  • They make people continue working when they're actually tired and no longer productive
  • They lead to stress and health problems like bad sleep, depression and impaired memory, which all make you worse at your job during all of the hours that you're working
  • They lead to people getting sick, burning out or quitting
  • They give people a false sense of comfort: "It's okay, I can always squeeze in one more hour". This prevents them from actually having to look at the bigger picture, prioritize and improve their effectiveness
  • They make people, consciously or subconsciously, dial back the intensity of their efforts in order to be able to make it until the end of a long day

Harsh but sensible quote from this article : "Keep overworking, and you’ll progressively work more stupidly on tasks that are increasingly meaningless"

Overwork triggers

Some triggers that can cause people to overwork (and some tips on dealing with them):

  • Stress: Stress about the never-ending backlog, looming deadlines, the chance that the business might fail, ...
    • Remind yourself that there will always be more work, that deadlines and scope are often not as fixed as they appear to be, and that some things are at least partially out of your control. In any case, getting proper rest and relaxation will put you in the best position to deal with whatever life decides to throw your way.
  • Insecurity: The feeling that you aren't doing enough, looking bad in front of your manager and peers, ...
    • If this is the case, you are likely failing to see the actual value that you are bringing. You might also be setting unrealistic expectations for yourself. If you're really worried about your performance, ask your manager about it. See also Expectation management.
  • Frustration: Feeling frustrated because you were not able to get done what you planned to get done
    • If this happened because something else came up, remind yourself that it's not realistic to expect yourself to finish the planned work as well. Additionally, the work you did instead might actually be very valuable. Sometimes, you can feel like you "got nothing done" when in reality you made a huge contribution to your team's success by mentoring people, clarifying requirements with stakeholders, planning future work, making sure team members are on the same page, ...
    • If this happened because for whatever reason the work you planned to do is taking longer than expected, remind yourself that shit happens. After some proper rest and relaxation, you will also be in a better position to finish the work the next day.
  • Guilt: Feeling guilty because you had an off day and couldn't get yourself to be productive
    • Often, an off day is caused by a lack of rest and relaxation. In this case, overworking out of guilt is the best way to guarantee that tomorrow will be an off day as well. Instead, get some much-needed rest to set yourself up for a more productive day tomorrow.
  • Obsession: Getting obsessed with a problem you're solving
    • Remind yourself that it's probably way more efficient to get some rest and continue tomorrow. Additionally, switching from a problem you're obsessed with to a completely unrelated leisure activity is the ideal setup for Hammock-driven development.

Benefits of working fewer hours

Working fewer hours comes with some clear benefits:

  • You are forced to look at the bigger picture to see if the tasks you are working on are really important and if you're tackling them in the simplest, most effective way
  • You are forced to give more realistic estimates that account for the inevitable fact that some things will go wrong or might need more thought and discussion
  • You are forced to spend more time thinking and planning up front, which greatly reduces the amount of work that is needed later on
    • Efficiency vs. effectiveness: Effectiveness is picking a direction, efficiency is running really hard in that direction. No matter how hard you run, you will never make it to your destination if you are running in the wrong direction.
  • You have the energy to give your best during the hours you do work, as well as the time to recover from it so you can have that same energy tomorrow as well
    • "It's a marathon, not a sprint"

Getting your work done on time

Some tips to get your work done within the limited time you have:

  • Establish clear priorities for your tasks (decided either by yourself or your boss) and start with the most important task
    • Even if you don't get as much done as planned, you can still go home knowing that you worked on the most important stuff first
  • Plan how to approach your tasks in the most effective way
    • Investing in this kind of upfront planning can save you hours or even days
  • When a new task appears, establish its priority relative to your other tasks and push other tasks back as needed
    • If your plate is full, you might need to drop or delegate another task
    • Potentially, you might be able to offer an alternative ("I can't do X, but I can do Y")
    • Make sure that you communicate this to stakeholders as needed. See also Expectation management
  • Set clear boundaries regarding the amount of work that you can do

Leaving when you plan to

Sometimes, it's easy to get caught up in a task and end up staying late anyway. A strategy to prevent this:

  • Determine the schedule to follow, so you know beforehand at what time you should stop working
  • In the last 1.5 hours or so before you should leave:
    • Continue working on whatever you were working on
    • If you finish, consider not starting a new big task but instead catching up on smaller tasks like code reviews, taking a step back to see if everything you're doing makes sense in the big picture, planning future work, ...
      • Starting a new big task is risky because by the time you properly get going it's already time to leave
      • If starting the new big task is the only thing that makes sense, focus on things that make it easier to stop and start again (chopping it up into smaller parts, doing some analysis and writing down your findings, ...)
  • In the last 15 minutes, stop working and write down everything you need to know in order to continue the task later on
    • Benefit: you can get off to a flying start the next morning
    • Benefit: doing this helps your brain to work on the task in the background while you are relaxing. See also Hammock-driven development.

Separate work and personal life

  • Set boundaries for working time (see above)
  • Separate work time and personal time as clearly as possible
    • When working from the office:
      • Only work when you're physically at work
      • Avoid opening your work laptop at home
    • When working for home
      • Have a clear schedule regarding what is work time and what is personal time
      • Make the distinction between work time and personal time as clear as possible (use a separate desk for working, don't use your work machine for personal stuff, wear dedicated work clothes, ...)
    • Avoid having any work-related communication coming into your phone
  • When you're working, work. When you're not working, don't work
    • Goes both ways: it also helps to avoid doing personal stuff during designated work time, otherwise the lines get blurry and you could even guilt-trip yourself into working in your personal time in order to compensate
    • Especially when working from home, it can sometimes be nice to be able to combine work and private stuff as the need arises. However, you risk constantly being in a gray zone where you are always “kind of working but also kind of not working”. It's often better to plan blocks of time for work and blocks of time for private stuff and to keep those blocks as clearly separated as possible.

Detaching from work in the evening

  • Move from your working space to somewhere else
  • Put your work machine, work notes, ... where you don't see them
  • Take off your work clothes
  • Get some exercise or just go for a short walk
  • Pursue some non-work-related interests (see below)

Pursue other interests

Pursuing other interests (music, cooking, exercise, reading, ...) makes you more well-rounded and might actually have a more positive impact on your added value as a developer than spending your free time on development stuff!

What pursuing other interests helps with:

  • Could help you look at things from different angles
  • Could help you understand your customers better
  • Could help you improve your communication skills (listening, speaking, writing, explaining ideas to others, ...)
  • Could help you get along better with customers and colleagues
  • Goal diversification (setting and pursuing different kinds of goals, so not only those related to work) leads to reduced stress and improved wellbeing (see How I Broke the Cycle of Stress )
  • Getting your mind off of anything work-related is a prerequisite for letting your subconscious work its magic on your work tasks (see Hammock-driven development)
  • People want to be involved in something that's meaningful to them. Even though you can often find some meaning in your job if you focus on the right moments, your job shouldn't be your only source of meaning. Outside of work, you can easily find meaning in appreciating beauty and nature, creating something just for creation's sake, volunteering, having quality time with people that are important to you, ...

What about self-improvement?

Make time for learning at work

  • As software developers, we are expected to learn a lot of things on the job, within normal working hours.
  • If your job does not give your opportunities to learn and grow, it's probably time for another job
  • Even if you use outdated technology at work, you can still learn about new technologies on the job
    • Minimize the required time investment by focusing on concepts rather than specifics (see also Concepts, not code - Learning new technologies)
    • Look for actual problems caused by outdated technology, find alternative technologies solving the problem, explain to your manager how those could solve the problem without huge investment of time and resources, and ideally get buy-in to investigate further and actually try the technology
      • Examples of actual problems: Hard to find and hire people who know the technology or are willing to learn it, time and energy wasted on doing repetitive work, having to work around bugs in the technology that are no longer getting fixed within reasonable time frames, ...
      • Even if you don't get buy-in to investigate further, you have added some tools to your mental toolbox

Your spare time is your spare time

It's not required to be working on anything work-related or career-related in your free time!

But what if you want to write code or improve your knowledge and skills in your free time?

  • Don't just take your work home. Spending more time on solving the same kinds of problems you're already solving at work isn't going to teach you things you couldn't just learn at work
  • If you want to write code, avoid putting pressure on yourself to build something useful in technologies that are relevant to your job or career:
    • Consider creating a silly application, just for the sake of creation
    • Consider using completely different technologies than the ones you normally use
    • Consider hacking something together using awful code, just as a way of learning how certain kinds of systems work or even just for fun
  • If you want to improve your knowledge, focus on learning concepts. See also Concepts, not code
  • Remember: there's no need to pressure yourself about this kind of stuff!

Don't get intimidated by articles and blogs

  • The field is huge, nobody knows all there is to know about everything
  • If you feel like you know nothing after reading some impressive article written by someone in a different subfield, remember that they probably don't have a lot of relevant knowledge regarding the stuff you are working on and know a lot about
  • It's mostly about your ability to figure out things as you go
  • You will always have some gaps in your knowledge. While it's good to be aware of them, it's not good to be intimidated by them.

Don't get intimidated by job ads

  • Job ads are written with the perfect candidate in mind, which by definition means that that candidate doesn't exist
  • While some of the listed skills/technologies are really needed for the job, the rest is often just things they want to use but aren't really using in practice, things they included in an attempt to make the job look more interesting, ...
  • Even for skills/technologies that are really needed, there's likely a lot that you can just learn on the job as you go, especially if they are relatively similar to things you already have experience with
  • If you're looking at job ads to get a feel for what your current skill set is worth, remember taking them with a big grain of salt
  • If you're looking for a new job, don't let intimidating job ads keep you from applying. Just state what you know, what you don't know (yet), and how some things you do know could help you to learn some of the things you don't know yet. Then, it's up to the company to decide if you're interesting enough to interview.