A Step Back for a Leap Forward: Confronting the Mediocre Mindset
Life wisdom forged in software engineering. The unwritten fundamentals of problem-solving skills that many overlook.

If I like my code, I burn it and start from the beginning.
Why? Perhaps it’s personal, but it’s quite simple.
Over years of practice, I’ve discovered that I subconsciously enjoy the results of meticulous effort.
This holds true in 98% of everyday life situations.
Often, we don’t have the opportunity to build something from scratch.
We are forced to build upon something that already exists, over a past that we desperately try to leave behind.
However, most human endeavors have a much shorter lifespan, opening incredible avenues for perfectionism, where you can endlessly tweak a particular aspect.
Software development is no exception. Yet, many people are drawn to extremes — some constantly rewrite some code, while others never do.
Sticking to an extreme is easy. Being flexible and open to change is much harder.
The key lies in finding the golden mean, the perfect balance between extremes.
Software engineering is a unique field.
You can be involved in projects that are several decades old, as well as those that are just emerging or have recently entered the market.
Some people’s experience is such that they find themselves on the same type of project for too long, leading to a false sense that everything, everywhere operates under the laws they are accustomed to.
I call this the “isolated bubble syndrome”.
Flexibility is key in software development as in anywhere.
On some projects and tasks, you can afford to completely rewrite something, on others, you can’t.
But you can definitely take small steps towards improvement every time you do something.
A few years ago, I started noticing that if I liked a particular piece of my own code, it was a sign to triple-check it.
This intuition never misled me.
Maybe not immediately, but after a day or two, a more elegant and simpler solution would often emerge.
The situation becomes more challenging when you have to write code under stress.
I don’t know about others, but in my case, it significantly increases the likelihood of overlooking or missing something.
Many (or maybe not all?) might be familiar with the feeling when your code works in 98% of cases, but there’s an edge case that just doesn’t fit.
It seems like one more “if” statement will fix it.
Then another “if”, and another, then an “else” appears.
It still doesn’t work, and you feel like jumping out of the window.
You add one more “if”, and then comes the moment of greatest euphoria — it works!
And you even start to think you’re really smart.
That’s the biggest mistake.
Instead of spending a whole day and tons of nerves building that pile of ifs, I could have just returned to the problem later with a fresh start and ended up spending a third of the time.
It’s hard to admit you were wrong. Even harder to acknowledge that the time spent was a mistake.
It’s incredibly difficult to break out of this mindset, which is nowadays called the “mediocre engineer mindset”.
Interestingly, the lessons learned in a work environment were the easiest, especially when you work in outsourcing, where your projects last from 3 to 6 months.
You simply don’t have the chance to assess the consequences of your decisions due to the short timeframe.
Easy lessons are never fully appreciated, sometimes taken as a joke or a funny coincidence.
The turning point came when I wanted to change my life, its quality… but couldn’t.
Due to foolish preconceptions, I was sometimes too principled where it wasn’t necessary.
Refused to be flexible and refused to take a step back, sometimes two or even three, to view the situation from a different angle.
It’s natural to encounter resistance on the path to your dream.
But you need to be aware of the strength of these resistances, or they will simply break you.
Constantly pushing forward like a ram will bear fruit. However, you’ll pay a hefty price — firstly in time, then health, and in some cases, relationships with people.
That’s an extreme.
Alternatively, you could just take a step back, think it over again, apply ingenuity, circumvent obstacles, and achieve the same goals in less traumatic ways.
Nowadays, many people say that one should not look for easy ways, claiming that success lies only through difficult paths, but this theory overlooks something important.
From my experience, decision-making can be categorized into three main types:
- Easy
- Difficult
- Non-trivial, yet simple.
In practice, option 3 is often the most optimal.
Even those who are adept at navigating complex paths may never think of it.
We live in a world of limited resources, and it’s vitally important to orchestrate them skillfully.
To develop a strategy for this long marathon.
Sometimes you need to lose a battle to win the war.
Take a step back with a fresh perspective to see previously missed opportunities.
If you liked the article, do not forget to subscribe for future updates!
