Paths for Software Engineers - Understanding archetypes
Posted on 2024-05-22
software-engineeringcareer-paths
As a software engineer, we are continuously learning and growing. With learning and growing, progress follows.
Progress comes in the form of promotions, new roles and responsibilities, and sometimes even a change in the domain.
Many companies provide a structured job/career ladder. These ladders might be unidirectional based on
traditional job titles such as graduate software engineer, software engineer, Sr. software engineer, Lead
software engineer, and Tech Lead. In such companies, most likely either including or post the Tech Lead
title, the roles primarily focus on people management. Many companies have now started creating
bidirectional job ladders, allowing one direction to create opportunities for individual contributors (ICs)
to grow.
As a software engineer who is navigating this path, the question becomes -
"what choice is the best for me?".
When you are very hands-on you do not want to lose touch with the code. Despite that lingering thought you
also do want to try out people management. But then You are not sure if you are ready to take the plunge
just yet. Furthermore, even if you decide to remain hands-on, you may also want work on new challenges. Oh
my gosh! The list the catastrophic "what-ifs" and "what-if-not(s)" are endless.
The Archetype?
As a software engineer looking for growth, it is important to understand which path you would like to follow.
Now, this is what I am keen to explore in this blog post. To understand the paths we first need to fully
understand the "archetypes". What are the archetypes that a Software Engineer relate to and how can they help in
making more educated career deciding decisions. Below is a dictionary meaning of the word "archetype".
As a software engineer, based on your aspirations you would resonate more with one of the following archetypes:
Individual Contributor (IC):
Engineers who like to put their heads down and get work done. They derive satisfaction from working on
code and delivering value. They like to be what we often call “hands-on”. They are often the doers.
Tech Leader:
Amazing at enabling others and creating a sense of direction for their team. They are experts at
understanding the best practices, integration patterns, and clean architectures. They are keen to be
coaches and mentors. Often they are great facilitators and can see the bigger picture. I like to refer
to them as “enablers”.
(Please note I have steered clear of using the world people management with
this archetype, and I would touch upon that in a bit.)
Visionary:
Some, as they have learned from experience and are able to map out patterns/frameworks, can embark on a
journey of sharing the same with a wider group of teams or even across the industry. We are seeing roles
such as principal engineers bud up in the industry to allow such talent to thrive and help establish
sensible defaults in workplaces. These folks are also great at writing blogs, presenting at conferences,
creating course material, and maybe books as well.
Which archetype do I resonate with?
Archetypes are not mutually exclusive. They are themselves not career paths/ladder, rather they represent
roles one might like to play. You can play a mix of two or even all three of these roles. The key is to
understand what you enjoy doing and what you are good at. This will help you align your career path and also
help you grow in the direction you want to. Let's dive into some examples to give an understanding of the
overlap:
Example 1 - Playing the individual contributor role only:
The role of an individual contributor (IC) is very important. Software engineers can decide to remain in
IC positions, where they focus on mastering the best practices in their field. They might not want to
become people leaders or take on active roles in guiding the team's direction. However, this choice does
not diminish their value. They are still crucial contributors, simply growing and contributing in their
own way.
Example 2 - The "Hands-on" Tech Lead:
Great tech leaders often get their hands dirty, meaning they're not afraid to dive into the technical
work alongside their team. At the same time, they also focus on empowering their team members to excel.
So, they find a balance between doing the work themselves and helping others do it well too.
Example 3 - Tech Lead with people management responsibilities:
Tech leads who are also responsible for managing people need to strike a balance between technical work
and people management. They need to be hands-on with the code while also guiding their team members and
helping them grow. This can be a challenging balance to maintain, but it's essential for the success of
the team. In a blog published on charity.wtfthe author says "the best tech leads in the world are always the ones who done time in
management. This is not because they’re always the best programmers or debuggers; it’s because they know
how to get sh*t done, which means they know how to communicate and manage other people".
Example 4 - The Visionary:
Those with big ideas, often keep themselves directly involved in the work to make sure their ideas
actually work. They might run their own consulting or freelancing gigs, or they might work for
well-known companies. By staying hands-on, they not only check if their ideas are practical but also
stay updated with what's new in their field. This hands-on approach helps them refine their vision and
stay ahead of the curve.
As humans, we grasp ideas better when we can visualize them. So, imagine the concept described above as a Venn
diagram, with each circle representing a specific archetype. Now, consider yourself as a point on this diagram,
positioned based on your current circumstances. You could be within one circle, at the intersection of two, or
even in the overlapping area of all three archetypes. It's important to know where you are now and where you aim
to be next. The key is understanding what you enjoy and what you're good at. By identifying your current
position and your desired destination, you can figure out the direction you need to move in.
What can we do from here?
Take some time to think about the activities you find enjoyable and the tasks you excel at. Creating a
mind map can help you pinpoint the aspects of your current or past jobs that bring you the most
satisfaction. This exercise can help compare your ideal self to your actual self. I would additionally
encourage this to be an ongoing annual activity, enabling you to track your progress over time.
While certain archetypes may seem like a natural fit for you, it's worth experimenting to discover if
there are other facets you might not have considered that you could also enjoy or excel in.
Above all, make sure to have an open conversation with your mentor or manager. Sharing your aspirations
with them not only makes your goals more visible but also allows you to receive valuable feedback on
your thought process. This dialogue can open doors to opportunities that you might not have otherwise
noticed or considered.
Conclusion
Understanding which archetype resonates most with you can influence your career paths/ladders and satisfaction
as a Software Engineer. Whether you identify more with being an Individual Contributor, a Tech Leader, a
Visionary, or a combination of these, acknowledging your strengths and passions is the key to unlocking this
understanding. So please, take the time to reflect on what aspects of your work bring you the most fulfillment
and where you excel. Experimenting with different roles and responsibilities, and seeking continuous feedback
from your team members and colleagues, can help you in this journey.
Remember, these archetypes are not fixed labels but rather flexible concepts. Stay curious and adaptable as you
progress in your career. Final thoughts, if you choose "your" right path, progress is a consequence that will
occur. So, don't worry about the progress, focus on the path.