DEV Community

Cover image for 3 Effective Ways to Maintain High Energy Levels at Work for Software Engineers
Moran Danieli-Cohen
Moran Danieli-Cohen

Posted on

3 Effective Ways to Maintain High Energy Levels at Work for Software Engineers

Originally posted on - career hacks for software engineers

Although software engineering is often considers a dream profession, in real life it is sisyphean work which often requires many hours at the office under the fluorescents lamps, a freezing air conditioner and no sunlight. On the other hand, writing simple code which works is a craftsmanship and like so it requires inspiration, focus and high energy levels. In this article I will try to demonstrate how to balance between the two and manage to maintain energy levels high in a demanding workplace.

1. Find Solutions for Energy Waste

I returned to work 5 months after having my first child. My baby was still waking up 2-3 times at night and I was exhausted. My fatigue levels were so high that I decided to stop driving to avoid accidents. Thinking about returning to work and managing to function normally seemed like an impossible mission. I decided to analyze my daily routine and see if I can avoid energy waste.

Knowing myself, my most productive time of the day is the morning. Therefore, in order to be effective I should make sure that my energy levels are high in the morning hours and are being used correctly.

Analysis of my morning hours showed that most of my energy is spent even before I arrived to the office. In those days I woke up at 5:00 am to feed my child, dressed him up, prepared myself, took him to his daycare and then took a 2 buses ride to get to work. When I arrived to work at 8:00 am, I was already exhausted.

I considered replacing the 2 buses ride with a cab. The price of a cab is expensive - about 10$ in each way. Meaning, 400$ a month. Once I realized that by paying for a cab I'm actually paying for a more productive work day, it seemed more reasonable. Looking at the total value instead of the price of an individual cab ride, I started taking a cab about everywhere - meetups, courses and conferences that I wouldn't go to otherwise.

To conclude: check what is your most productive time of the day, analyze where your energy is wasted in this time and find solutions for energy waste by concentrating on the big picture and not on an individual action.

a real break

2. Take a Real Break

One of the workers I know doesn't take breaks. None. He arrives early and leaves the office at 19:00. Sometimes he continues working from home too. There are days he doesn't go to lunch breaks either: He just grabs something and eats at his desk while he continues working or he rushes to the nearest restaurant, buys something to go and disappears back to the office. There are managers with similar behaviour.

Unintentionally, this behaviour creates stress, burnout and it is a killer antidote for creativity. Managers who act this way create the same level of expectations from their workers, even if they don't ask it explicitly.

One of the main evils of this profession is that in most companies workers are still measured by the time clock and not by performance. Recent studies show that breaks are good for the brain: they increase creativity, improve focus and keep us healthy since we're not designed to sit all day.

So in order to maintain energy levels high, next time you feel tired, not in focus or stuck with a bug for hours, continuing to work will only make you feel more tired. Try taking a break instead and the bug will be resolved before you notice.

The meaning of break is not simply stop working. The meaning of a real break is giving rest for your brain. During break time do something which will help calm your mind like getting some fresh air, listening to your favorite music, drinking green tea and water, stretching exercises, and taking a shower or a quick nap if possible.

shift between different tasks

3. Shift Between Different Tasks

The software engineering profession is full of tasks that require different skills: reading emails, writing code, performance testing, talking to stakeholders, learning a new topic, reviewing code, debugging an issue, writing documentation, designing a feature, etc.

If you're working on a task which requires one skill and feel like you are running out of energy, switching to a task which requires a different skill is similar to taking a break for a specific part of the brain. So you can switch to another task which gives the part of the brain that was working some rest and then go back to that task later.

For instance if you code for 2 hours and feel lack of energy, try talking to stakeholders or reading emails, which require different skills. If you learn a new topic and need some rest, try reviewing code or debugging an issue. After some time, go back to the original task and you'll notice increased energy levels.

To summarize, in order to maintain energy levels high at a demanding profession such as software engineering: find solutions for energy waste by concentrating on the big picture and not on an individual action, take a break and do something that will calm your mind, and shift between different tasks to allow a specific part of the brain to rest.

Top comments (26)

msscohen profile image
Moran Danieli-Cohen

Hey guys,
I created a presentation based on this article, hope you'll find it useful:

jasogamol profile image
Mark Piffer

Interestingly you didn't recommend the most basic rule of craftsmanship: check (and replace if necessary) the tools you use. And with "tools" I mean tools! Your keyboard, your mouse, your monitor(s), your chair, your desk.

While none of the above will give you a breakthrough like that one super-productive morning which the gods shone their light upon, their impact will be small but constant throughout the whole year and the evaluation of their suitability requires nearly no technical skill at all. Just the willingness to pay for quality - exactly what you want from your customers too.

ssmusoke profile image
Stephen Senkomago Musoke

This one is really a key un-noticed one - get a wrist support for your keyboard and mouse, do you actually need a faster computer (or more memory) to speed up compiles, replace wireless LAN with a hardline LAN cable (more stable SSH, faster Internet with less interference), ergonomics can mess up energy levels too.

Do you need to upgrade that IDE or use the one you are more comfortable with ...

quietnoise profile image
QuietNoise • Edited

Taxis, naps, don't drink coffee first thing in the morning (you are already rested there and next coffee later won't work), reduce distractions (headphones, attitude), productive software (IDEs, automation scripts, shortcuts), fast hardware (SSD, loadsa RAM), comfortable environment and furniture.

These are my tops. You can get 8-14 focus hours a day (depending on workload) instead of three (low quality munching doesn't count:D)

meonlol profile image

I find switching to much is bad to; it's a real productivity killer.
Great post!

voins profile image
Alexey Voinov

Taking cab makes sense only if you're getting paid more when you work better. If I see no increase in salary, why bother? :) And as you could guess, I'd totally agree with you on breaks. The same reason, if I'm not getting paid more for working without breaks, why should I do it? :)

As for myself, I've noticed that the my most productive hours are when I work from home. Even with two little children to babysit (3 years and 10 months old), it is a lot less distractions than in the office. :) And I can actually optimise my time so that I'm less tired with more things done by the end of the day.

hytonevi profile image
Ville Hytönen

Your article hit the spot at least for me, I have 2 years old toddler and 10 weeks old baby at home, and somedays my energy are out really fast. And I have noticed when I don't get enough sleep I got really dumm at work, I make mistakes that suppose to happen only starting programmers. And that way I am getting the imposter syndrome because I think I could do better than I am doing right now. :)

rowlandekemezie profile image
Rowland I. Ekemezie

Awesome. Thank you!

chandravijayagr profile image
Chandravijay Agrawal

This is Very helpful content for me {engineering student} 😤😤😤😤

daisychubb profile image
Daisy Chubb

Great article, I found it quite helpful!

danhidsan profile image

Very useful article for me, I'm software engineering student. Thanks

rafaelcg profile image
Rafael Corrêa Gomes

Excellent, thanks for sharing your thoughts :)

codemouse92 profile image
Jason C. McDonald

Excellent article! I'm going to try these tips tomorrow, right out of the gate.

rafaelcg profile image
Rafael Corrêa Gomes

Excellent, thanks for sharing your thoughts!

cmmata profile image
Carles Mata

Interesting article! I'll try to follow some suggestions

jlhcoder profile image
James Hood

Really helpful post. Thanks so much!