Stages of Growth for Software Engineers

Hassan Habib
9 min readSep 10, 2022

--

As a mentor for several engineers out there — I always get the question about growth. Growth is something engineers chase in their minds all the time. Am I learning? Am I getting better? Where do I start? What’s the path forward for growth?

Earlier in my life I thought about this question as well. I always thought to myself, what’s the roadmap to evolve as a software engineer? What’s the end goal? What am I working towards in this world?

The reason why the question of growth is quite important and difficult at the same time, is because it’s intertwined with the concept of purpose. A man with no purpose is a man with no potential for growth. Regardless of how small and superficial the purpose maybe.

For instance, I hear some engineers talk about growth so they can get a bit more rewards, promotions, or any other type of recognition by corporates. It’s a very superficial temporary purpose — but it’s a purpose at the end of the day. A purpose that drives engineers to ask the question: “How do I grow as an engineer?”

From my perspective and based on my personal experience, growth is comprised of three stages. These stages may or may not be fully recognized or understood by every engineer. But somehow one way or another they find themselves in at least one of these stages.

The stage of growth evolves around the survival, evolution, and fulfillment of mankind. It goes from the concept of survival in the form of trying to pay the bills, all the way up to working on something that challenges engineers intellectually and gets them excited every day to explore. But it also ends up with something higher and very seldom talked about which is fulfillment. It evolves around fulfilling one’s purpose in this world.

The purpose of this article is to open your eyes and your heart to what’s out there. Help you see my perspective of growth and hopefully inspire you to move onwards in your journey as a software engineer.

Let’s talk about these stages here.

Survival

You can also call this Stage 0. Most of us start at this stage. We get an engineering degree or self-teach ourselves how to build websites or mobile apps and we go on to find a job to make our investment profitable.

For some of us, it takes a lot of hard work and struggle to secure a good position at some corporate or a startup. And once that’s done — we start building a life based on the income we receive from these jobs. For a lot of the engineers out there that’s the end of the story. They start making money, running in the rat race of corporates, and dealing with the daily stress of competition and exceeding expectation to score a couple of extra pennies to feel good about their “growth”.

There’s a lot of mistakes in that scenario above. The first and most important mistake here is that an engineer should never rely on one source of income for their survival. Settling for a job at some corporate that may or may not exist next year is foolish. It gives a temporary feeling of survival but it’s not real. Because at any point of time everything could be shut down, and everyone could become unemployed at the smallest sign of recession.

Relying on one source of income especially from a corporate job is beyond dangerous not just because of the instability of the tech market, but also because of the threat to the mental stability of the engineers themselves. Engineers who give up on their personal beliefs on what makes good quality software — turning themselves into sycophants to appease some other higher ranked employee just so they don’t end up being homeless are sacrificing their own spirits and souls for pennies tossed out to them every year.

The situation becomes even more critical, when these very engineers give up on the craft itself and decide to do whatever they need to, to make money. Sometimes the systems they are working on becomes so chaotic and a source of mental torment, so they decide to switch careers to testers, service engineers or even program managers so they continue to afford a living while being fully detached from their original passion and purpose.

There’s nothing sadder and funnier than someone who used to be an active engineer who switches over to some other career and still brags about how they once coded and built systems. All I really hear and see is someone who gave up and dropped the ball on their dreams and passion. It’s a sad scene.

True survival for a software engineer is to own your own fate. You start as an employee and build yourself up to become an entrepreneur running your own company. Owning your own decisions and building whatever you like whenever you like it.

This was the path Steve Jobs took when he started his career. He used to work for Atari to build video games, but then he realized he couldn’t work in a place where his dreams and creativity is shackled by some impassionate so-called leaders who have no vision or dreams. The same story repeats itself with Walt Disney and so many other popular figures who changed the face of every industry they were passionate about since the beginning.

What I really realized is that survival itself could go through three stages. You start by working for someone else, then working for someone else while working for yourself and then you end up working only for yourself. This is where you take control over your decisions and start truly innovating and become creative with your wholistic vision about working with software.

There are many engineers out there that are still stuck in stage 0 of stage 0. They are still working for someone else for years and years. They don’t have a plan or a roadmap as of where to go next in terms of growth. Their ultimate dreams doesn’t go beyond the idea of getting a higher reward, a better promotion or maybe extra bonus. It’s quite disheartening to see. Especially for individuals who have all what it takes to start their own business and put something useful out there.

It’s the usual the fear of failure that shackles our leaps of faith. We freeze and fear. We think to ourselves what if it doesn’t work? How much this is going to cost me. What are people going to say about my foolish dreams?

Thinking in these terms is a guarantee of failure. The universe smiles upon those who put a little bit of faith in their logic. And mix them both together to take a leap and give themselves a shot at being something more than just a number at some corporate.

Evolution

If survival is to work as an engineer (or not) somewhere where you just make money to survive and pay the bills. That goal should not be the end goal for any engineer. Every software engineers out there have a favorite topic that he likes to work on. Some of us like web design, backend systems, user experiences, artificial intelligence, data analysis and hundreds of other topics and realms an engineer could be working on.

If survival is to work somewhere on web design for instance just to secure an income. Evolution would be to change that position into something else you truly like such as backend systems for instance. I see a lot of engineers stuck for years working on a topic they have no attachment or interest in whatsoever.

I hear a lot of stories from engineers who were extremely passionate about gaming when they were in college, and years later they end up doing backend development. And when I ask them about what happened they give me this awkward smile of: “I couldn’t do it” or “They didn’t have any openings”. They just stop there with no further plans.

A software engineer giving up on their passion is no engineer at all. They’re more like a cog in a machine that happens to fit it. A brain for hire. Giving others his brain to do whatever they choose with it. These are the very same engineers that give up on growing and learning about software engineering. They get quite nervous an insecure when they see someone passionate joining their team and trying to shift things for the better. They hate that they give up on their dreams and someone else didn’t.

But evolution just like survival has also three stages. If we assume that some software engineer Lilly is passionate about video games. The first stage of evolution would be to work at a gaming studio and learn from other game developers who can teach her something useful.

Staying there is not advised. Lilly would need to move on to stage 1 in her evolutionary journey to start participating in innovating new ways and new concepts in the gaming world. It could start as a co-op effort to play a small role in a new concept or a new design. But eventually Lilly is going to have to move on to be the sole innovator for her ideas and concepts.

It’s not enough to just work around people who are passionate about your topic. And it’s not enough to participate in some design and development in some evolutionary concepts. One must chase their dreams and apply themselves and show the world what they are truly capable of and how much they are obsessed about their craft.

Working on something you are passionate about is great. But it’s not the final stage of growth. Growth goes well beyond the idea of working on a topic you are excited about. Let’s take about that in this next section.

Fulfillment

Making so much money and working on something you like isn’t enough. It may give you temporary happiness and a sense of accomplishment — but it’s all temporary. Imagine a software engineer Anu who is a Senior engineer in some big enterprise. She gets paid six figures and she work on artificial intelligence — she loves her topic, and she loves the fact she can fly anywhere around the world and spend the most luxurious vacations without having to worry about her savings.

Anu has everything she could possibly ask for. But Anu is not happy. She feels she’s running towards nothing. Yesterday is a lot like today. And tomorrow doesn’t seem would be going any different. Anu feels something is missing in her life, but she doesn’t know what it is. She tries to visit therapists, talk to family, take vacations but there’s still that big gap inside. And her success and popularity don’t seem to be fixing that problem.

What’s missing for Anu? She’s supposed to be very happy on paper. But she is truly not. Even when she pretends to be taking a selfie next to an amazing beach at the Bahamas or with a popular celebrity — it’s all a sham.

It took me years to come to this conclusion — but it has become more and more evident with my experimentations and infinite conversations with people from every background — that we all yearn a sense of higher purpose. Our individual success can never be fulfilling unless it spills over to others. Our happiness doesn’t feel like happiness unless everyone around us is happy to.

Imagine being in a group of people who are starving to death, and you are the only one with a sandwich in your hand. How does it feel? Can you enjoy that sandwich? And if you did, can continue to enjoy that experience?

It turns out that we as human beings were meant to do something a bit higher than getting a fancy job, building a successful startup, or having all the wealth in the world.

It turns out that our fulfillment comes only from taking all our success, wealth and knowledge and share it with those who were unfortunate enough to have the same privileges as us.

It turns out that a sandwich tastes so much better when split across everyone around us, where we can all share smiles, happiness, and content.

Everything we do — if not directly contributing to the survival, evolution and fulfillment of mankind is an utter and complete waste of time. If you secured your own survival, you must help others secure their own survival even if no one helped you with yours.

If you secured an evolutionary step in your growth, you must help others secure their evolutionary steps — find their path and make it easier for them than it was for you.

When we do that, we achieve fulfillment. True sense of purpose and passion that makes our lives more meaningful — more fulfilling and a lot more purposeful.

This is an appeal to all software engineers everywhere to survive, evolve and fulfil their self-less purposes. Don’t get too caught up in pre-packaged purpose imposed by society about some superficial dreams. Don’t go with the flow. Find your true self and true meaning. Ask yourself and think — who are you? What do you want to be? Where are you headed?

Is this what you want or what your community wants for you?

At last, our world has changed because of evolutionary scientists who wanted to push the wheel of innovation forward for everyone. Some of the biggest innovations out there were not driven by a “business plan” or “calculated risks”. Experimenting with flying was not funded by some corporation. And exploring the depths of our world was not proposed by some venture capitalist.

Find yourself — evolve it. and then share it with the world.

--

--

Hassan Habib

I’ve mastered technology to improve people’s lives one line of code at a time, more about me on hassanhabib.com (opinions are my own)