Every once in a while I’m asked why am I staying an engineer and not moving to management. In the eyes of many of the people around me, staying an engineer means not advancing your career. I think it’s only because we struggle in growing engineers.
It’s easy to demonstrate growth for managers. It isn’t easy to grow as a manager, but it’s easy to estimate them. There’s one ladder, specific metrics, and the entire industry is aligned on what a good manager looks like. For engineers, on the other hand, there is no one path. There are no metrics defined. Nothing is defined actually — if you want to grow, go build your own ladder to climb on. Most engineers I know do not do that.
Engineers tend to grow in all directions simultaneously, placing themselves wherever the industry needs them at a certain time. It’s beneficial in their first years in the industry. When they are good — they become effective anywhere, and everyone is happy. At some point, though, they stop growing. They hit a glass ceiling that it’s pretty hard to break.
I hit that glass ceiling a few years back. I was working on a promotion that didn’t come when I wanted it. I was upset about not getting it, but moreover — I couldn’t tell what was missing in order to get it. Back then, I was doing everything, from building architectures, to mentoring people, to leading a small track. I did an alright job on all fronts, but this wasn’t enough for a promotion. When trying to understand what’s missing, the answer was “a little bit of this and a little bit of that, the narrative is not clear”. That was true — there was no single path I was taking, how could this work?
This lack of a narrative happened due to inability to define the engineering aspects that define me as an engineer. In other words — I haven’t yet defined my specialty.
An engineering specialty is the one ladder we choose to climb on as engineers. It is usually one or two engineering aspects that we find as most exciting and most interesting, and imagine ourselves investing in for really long times. It’s our role to find them.
These aspects are not strongly defined. I found the following themes quite useful:
- Technical Specialties: Embedded and Low Level, UI, Android/iOS, Open Source, Graphics — Technical Expertise stands for the abilities that eventually determine which kind of technical environment we will take part in. Choosing an aspect from this list usually determines your path for the kind of companies you are going to look for and the kind of teams you would pursue
- Meta-Technical Specialties: architecture, scaling, bug-fixing, tech-leading — This is more of the “kind of technical problems you are looking for”. I tend to connect to this theme more than the pure technical one.
- Cultural Specialities: mentoring abilities, team-building, communication — these are the more soft, but not less important.
Back to my story — I used Howard Gardner’s “Good Work” as a framework to choose my own specialties. Good Work is defined as a combination of excellence, engagement and ethics on the way to truly love, and grow, in what you do. It’s about choosing an area that you’re the strongest at, enjoying most, and willing to commit to. The aspects that are the best match for me -
- Architecture: big, complex systems, make me thrilled and effective. When I write code, I want to be all over the stack, understanding the higher level picture and tradeoffs and solving architectural problems.
- Generating scope for other people: I like thinking ahead and creating engineering directive and strategy. I like taking a team through a path of execution of complex systems, by creating projects and scopes for the people around me.
It was only after this definition that the path was clear for me. I was able to clear noise, and see what exactly is missing in order to get to the next level. I was able to choose a competence model to compare myself to in a way that made sense to my career path. I was able to communicate to my manager where I see myself and what I believe is missing, and by that help them help me grow.
Since then I moved to a different team. It was easier to examine a team and decide whether or not I could play for my specialties in that team, it helped me make better career decisions. My current team is a perfect fit — I’m able to focus on these exact areas, pushing myself to improve more in those specifically. Almost a year later — it was totally worth it.