Some engineers like to code, some like to manage projects, some like to stay close to the users. Software Engineers come in all shapes and sizes.
What are the major archetypes of Software Engineers and how can one identify one's own archetype to double down and improve.
There are so many ways to break this question down. I don't think there's an exhaustive or complete list right now.
But what are you trying to improve?
I will contribute two categories I see my team falling into:
They do it all and pick up all the random tickets that come through. They know at least a little about every codebase. They experience a variety of roles during their time. They are empowered by switching between different projects.
They are masters of their domain and have a deep knowledge of a specific codebase or stack. They understand how everything works together beyond the surface level. They are empowered by honing in on their craft.
To improve, you can focus on your weaknesses or strengths in each of the archetypes and try to develop them. For example, if you are typically a generalist, try to gain a better understanding of your system.
Here are some other links to explore which I found humorous:
I would love to hear more about what others think, thanks for the question!