5 ways to go from frustration to fulfillment as a software engineer

Someone asked me why software engineers hated our jobs. My first reaction was to negate it. But reflecting on that, I do understand why many of us experience so much frustration to the point of abandoning our careers. This is how I seek realization in my job.

5 ways to go from frustration to fulfillment as a software engineer
Photo by Priscilla Du Preez 🇨🇦 / Unsplash

It’s inevitable to experience boredom after some years of doing the same job.

Although we can’t expect our job to be a permanent source of exciting challenges day in and day out, we often reach long plateaus that make us rethink our careers. Sometimes, it’s clear and advisable to make a significant shift and take a different path. But more often, we just need to resignify our actions and change our attitude.

Even though I’m 100% sure I chose the right career, being a software engineer leads to many frustrations I need to deal with.

Sources of frustration

I chose this career (and probably you, too) because I love to program.

But the harsh truth is that, as you grow in your career, the time you spend programming decreases while new activities appear. Those new activities landing on your desk are responsible for most of your frustrations, almost leading to hating your job. These are some examples of responsibilities that make my day miserable.

  • Useless meetings
  • Discussing the same topics multiple times
  • Receiving poor functional specifications
  • Bureaucratic documentation
  • Negotiating timelines, responsibilities, and solutions with business
  • Lack of recognition
  • Doing other people’s jobs
  • Being responsible for other people’s performance
  • Etc.

Although I don’t enjoy any of them, I now understand that:

  1. A job can’t be exciting 100% of the time.
  2. Most importantly, I’m responsible for finding realization in the things I do.

Seeking fulfillment

I know that if I want to earn good money as a software engineer, I must do those activities that are so uncomfortable for me.

I could complain all day about my role, but I could also collect some learnings on the way. The truth is that there are not enough projects requiring specific technical knowledge where I can have a good salary by programming the entire day. These are some of the mind shifts I did to see my activities from a new perspective.

1 - Becoming a Leader

Succeeding to implement a project is fine, but helping to build great professionals is priceless.

The feeling of someone from your team doing something astonishing is the best we can experience at work. I may like doing things on my own and avoid the responsibility for other people’s mistakes. But being part of their mistakes also makes me part of their successes.

My most satisfactory moments today come when I see my team members starting to crawl, walk, run, and fly (hopefully in that order),

2 - Creating Useful Documentation

We all agree that documenting is the worst part of our jobs, but what if we rethink it?

We see it as a waste of time creating files that no one will ever read. But can also create a document so good that everyone goes to it when they want to know about something. I’ve worked in a project where we had “the Hendrick’s file”. Although the file has its formal name, we all called it after its creator.

Unfortunately, I’ve never met Hendrick, but having a document with your name may be really cool.

By creating good documentation, you will improve the understanding of your system, the communication with business, and your team’s performance.

A side effect is to become better at writing and communicating, which takes me to the next item.

3 - Learning to Negotiate

For me, negotiation is the extreme way of getting out of my comfort zone.

I suffer it. I lose every argument (I don’t get what I want or think it’s better). But the truth is that by exposing myself, I also feed my self-esteem and learn to express my opinions.

I feel a great sense of realization every time I get what I want or successfully make my point for a better solution.

In case you need some ideas, saying more “No”s is a great beginning.

4 - Gaining Business Knowledge

Finding the root cause of an error feels great, I won’t discuss that. But how do you feel when you connect 2 (until then) completely unrelated pieces?

Despite our interest in the technical field, there is never so much new learning in a single project. Even in some years of several similar projects. However, when you start to learn the business reasons behind your developments, it’s like entering a new dimension. Everything makes more sense.

You may think that as a developer, your role is to develop. But the excitement levels you reach after seeing the world from the business perspective are superb.

This skill also retrofits your technical knowledge and opens new opportunities.

5 - Enjoying My Moments

And ultimately, how do you feel during that 10% of your time, when you can finally sit down, isolate from the world, and just code?

We can’t be happy or do cool things 100% of the time. If we did, nothing would be cool at all. By spending so much time getting out of our comfort zone and doing things we would never choose, we strengthen our resistance.

The best part is that when we have the chance to develop or debug a piece of code, we delight in it.

Conclusion

Our job satisfaction shouldn’t be dictated only by what we do but also by how we do it.

If we set different goals and learn to enjoy the hidden prizes, we can find realization from activities we would never choose.

Give these methods a try before burning out, or even seeking a new job just to be equally miserable 3 months later.