The cycle of engineering career development: impostor, intuition, stagnation, repeat
Those are the three phases I have detected as the recurring phases a software engineer goes through during their career. Through my personal career growth and that of my peers and mentees, I learned that growing professionally is always a hard challenge to face. Time and again, we go through a similar skill acquisition cycle, and understanding this process can help make the journey more enjoyable and less chaotic.
In my career, I’ve gone through many challenges:
- Starting off, I struggled with writing functional and stable code,
- Later, I had problems following more complex conversations about architecture styles, scaling, automation, etc.,
- After that, I had a hard time communicating with some team members who weren’t like me and whom I didn’t quite understand,
- And now, I find it hard to be a continuous source of inspiration to my team, to help them tackle new challenges with the right mindset.
I’ve recognized three distinctive phases in the learning cycle:
1. Adjustment phase
I always loved solving hard engineering challenges, and I have tied much of my sense of professional self-worth to it. Transitioning to engineering management meant I would focus big chunks of my time on new types of problems.
My key performance indicators (KPIs) needed to change. I used to evaluate myself based on my own contributions, but now I had to do it through my team.
It took multiple cycles in my career progression to finally recognize that this was just a phase, that the struggle was normal, and that I was going to get through it.
Understand that impostor syndrome is a natural occurrence when taking on new responsibilities.
2. Intuition-building phase
At some point, we stop feeling as stuck, and things aren’t as hard. There will be challenges and some failures, but for many, this is the sweet spot — the dynamic that feels most empowering. But this is also a phase in which we might fall prey to overconfidence — where we overestimate our skills due to lack of expertise, a well-known phenomenon called the Dunning-Kruger.
To raise our level of expertise, we must build an intuition about the best ways to solve our new challenges. We start off by learning rules given to us by mentors, colleagues, and other people with relevant experience. But things are rarely straightforward, and those rules can’t cover all situations. Only by experimenting and collecting timely feedback can we train our brains to intuit solutions beyond given rules.
Don’t fall into the trap of overconfidence; keep pushing and looking for feedback. At times it feels like we’re on top of the world, and at times everything is hard. Forming your intuition on what works best takes time and some hustling, so don’t skip any steps.
3. Stagnation phase
How do we know we’re past the overconfidence phase and are actual experts? That usually happens when things aren’t as difficult anymore.
They can be challenging because of the amount of work, but the work itself becomes relatively straightforward. We’ve now seen things enough times that nothing can really surprise us, and we can rely on our intuition. We’ve reached our peak!
At this point, a hard decision is in front of every engineer — do we stay in this position, where things aren’t as challenging, bringing the benefit of reduced mental load and lower stress while providing a high-quality output — or, do we take a fresh challenge by taking on new responsibilities, inside the current company or somewhere else, being bad at something once again?
How to get the most from that cycle and go through it easier every time it happens? Good engineers train their skills, great engineers train their mindset.
And, in case you’ve missed my first post ever that kind of went viral a bit, here is why I think it’s harder than ever to be a good software engineer.