DEV Community

Cover image for The road to staff engineer
JTK
JTK

Posted on

The road to staff engineer

I'm not qualified to write this post, yet. I'm not a Staff Engineer yet. Although of the things I've ever really set my sights on, my track record is pretty impeccable, so I'd estimate my odds are good. I also hope to have another few decades in this field, so judging on my trajectory so far, I can't think of any reason it shouldn't happen.

I wanted to write about this topic though, because I feel like it is shrouded in far more mystery than I would have expected. What is a Staff Engineer? What's the big deal about it?

When I think of my current belief of "what's so special about Staff Engineers" I think if early-career me had heard it, I wouldn't even have understood what it meant. It is not always but can be a lot more complicated than "just a super duper senior engineer".

What's so special about Staff Engineers?

This is a complicated question to answer, and like any title different places it will mean different things. Like any job, different people have different strengths and weaknesses, and you could take two very successful Staff Engineers and find the reason for each of their success to be totally different attributes.

Further complicating things, as my understanding of Staff Engineer grows, I see that it can but may not always share elements of other roles: leadership roles, technical lead, IC. All of these things make it harder than I would have imagined to pin down.

Apparently I'm not alone. Will Larson (who has great content and a book out on this topic) identifies that there are, in fact, staff archetypes people may tend to fall into, which can somewhat explain the disparity you see between person to person who may hold the title. Borrowed completely from the linked resource, they are:

The Tech Lead guides the approach and execution of a particular team. They partner closely with a single manager, but sometimes they partner with two or three managers within a focused area. Some companies also have a Tech Lead Manager role, which is similar to the Tech Lead archetype but exists on the engineering manager ladder and includes people management responsibilities.

The Architect is responsible for the direction, quality, and approach within a critical area. They combine in-depth knowledge of technical constraints, user needs, and organization level leadership.

The Solver digs deep into arbitrarily complex problems and finds an appropriate path forward. Some focus on a given area for long periods. Others bounce from hotspot to hotspot as guided by organizational leadership.

The Right Hand extends an executive's attention, borrowing their scope and authority to operate particularly complex organizations. They provide additional leadership bandwidth to leaders of large-scale organizations.

So these descriptions advance me somewhat in my understanding. I have been called Tech Lead and Dev Lead before, so I can connect the dots and recognize what traits let me do that well. I've also situationally been my team's "Solver" or "Architect". Probably the least relevant to me is "The Right Hand Man" as I don't really like politics, although calling it "politics" grossly simplifies that archetype I realize.

Although there is some overlap, my own understanding of Staff Engineer has been an evolving attempt to put words to people I've known but couldn't have described. There's one at my work who I started with before their promotion to Staff, and I remember just thinking "wow this guy is on another level".

When I tried to articulate my goal of a Staff Eng promotion to my current work, I finally came up with at least a halfassed description of my newly-promoted colleague. "He sees the problem underneath the stated problem, he sees the solution no one was asking for but they actually desperately needed". In addition to being a solid coder, organized, and t-shaped, this person basically has x-ray vision, was I realized the heart of my compliment.

I think the part junior-engineer me wouldn't have been able to conceptualize is how a Staff Engineer puts it all together. It's a mix of things, gravitas, communication skills, consensus building, deep as well as specialized technical knowledge, and the ability to transform all those elements into masterpieces of impact. It is hard to say that in a non-cheesy way that expresses the extent of it. I think as a junior dev, I also would not have understood how deep "depth" can be. My impression of operating at the staff engineer level is that there is a depth borne of deep, deep experience that can't be faked or rushed.

What I want is not an easy path

I was made Dev Lead with about three years of software engineering experience and at the time I remember feeling like it was an inflated title for my capabilities. Not wanting to miss out on any opportunities it netted me, I obviously didn't object to the title bump but inside it felt sort of meaningless.

At that phase in my career, I was a solid communicator, obviously good coder, well-rounded in some ways although not in others, but I think mostly just working crazy hours was enough to get me to Lead.

Since I've been in tech, it has not been unusual for me to see colleagues have a six year path to startup CTO (maybe title inflation, but its happening) or a two-year path to Senior Engineer. Not to detract from anyone else's achievement, but for me senior came too easy - it was meaningless. I didn't feel like I earned it and although I enjoyed the salary that came along I did not in my heart of hearts feel senior.

Staff Engineer is a different beast. While I think a lot of companies slotted people into senior roles in the past few years to make salaries work in a competitive hiring climate, Staff Engineer is a title that carries with it a weight that it isn't going to be given away like that.

In fact, many to most engineers may never make it past a senior title. One resource I found but am now struggling to locate describes Senior Engineer as an often "terminal" title in the progression spectrum of a software engineering career.

Putting my own version of a roadmap together

I'm still a work in progress. I write to you awaiting my first annual review at my job, so that in the event there are critical comments I can integrate them into my personal roadmap. If the comments are good, I'll have additional food for thought about what archetype I want to pursue.

As always, I reach something of a fork in the road in relation to my natural talents versus my interests. People seem to find me likable, I get told I am articulate or a good communicator. Being organized, creating documentation and charts and guides, those are all things I was doing from childhood when I'd put together PowerPoint presentations lobbying my parents for different privileges.

Maybe because it comes easier to me, or because they are skills I used in my past careers, I have always gravitated more towards the hardcore technical work since becoming an engineer. People probably would assume me to be an extrovert but I'm not. All that "likability" costs me, below the surface. The lack of control also fatigues me.

In one of my appointments as Tech Lead we had an under-performing teammate and I was somewhat alarmed to have nebulous aims for that person's growth laid at my feet. Ultimately, I could help, I could coach, I would give them the tools to succeed but had no control over whether the struggling engineer improved. That kind of thing terrifies me, and is why I'm not considering people management, although people sometimes tell me I'd be good at that.

Adding another layer of complication, because Senior Engineer came too easy and didn't mean much to me, I have my own arbitrary thresholds of knowledge I want to conquer in the process of pursuing this title. For my entire dev career up until graduating this past March I have been a half-time to full-time student. Cranking out school assignments kept me so busy that there are many "fundamental" code areas I feel I never got to learn. I've never properly learned to do cool manipulations of tree data structures, if asked to do back of the napkin math about device storage capabilties I know almost none of that offhand.

As someone working with high-level languages to be fair neither thing comes up all that often, but it has still been the voice in the back of my head saying you aren't really senior, you got there through luck and likability.

My managers asked me why I wanted a Staff promotion and I answered, "Not to sound like a real hippie but it's partly about the journey. I feel like its a chance to learn all these things I never got to to become my own idea of a deep, well-rounded engineer".

My plan from here

I will never stop being surprised at the number of times in life being the so-called "squeaky wheel" or asking for what I want has netted me outrageous advantages. Since casually talking to folks about this a number of extremely lucky circumstances have fallen into my lap:

  • I got to interview a talented Staff Engineer about their path to the title
  • My old and new boss have both been getting me involved in more database work, which I want to be the crux of my special area of knowledge
  • I got invited to a recurring Staff Engineer working group where a mix of people who currently hold the title and want it chat together about what it means

With all those things cooking, the next BIG thing I need to do is get my review from work and translate that into specific goals and milestones to attain the promotion in a year.

The year timeline is to be honest with you, maybe a moon shot. I have six years of experience as of last month. I'm seeing people attaining Staff Engineer for the first time after 15 years of experience, some of it far more impressive than mine.

Even so, all I can think is that having this focus so early might let me leapfrog a few years of just cruising at a senior title. The focus, the work, learning from others, can only help right? While a year may be crazy, I'd say my more honest goal would be to make Staff Eng before having ten years of experience. I would be perfectly happy with that outcome.

In closing

While it is nerve-wracking, having this new goal is exciting. It is the first time I've really cared about my title in this field, and I feel like the journey to even trying to get it will be transformative.

It IS about the journey, y'know? I wasn't just saying that. Even if I never get there, taking this road trip through all the topics I always felt I missed out on, developing leadership skills and impact, I'm looking forward to it all.

Thanks for reading, and feel free to share any of your own thoughts on pursuing this title in the comments!

Latest comments (2)

Collapse
 
dudchenko profile image
Anastasiia

Hey, Thanks a lot for such a great article. I myself am on the path of finding myself in the development field. Where to move and how to move. I study different cases.
thank you!

Collapse
 
anna_dorigo profile image
Anna

Hi! I loved your article, I feel very identified with your journey and your perspective. I'm also on my way to becoming a staff engineer and I'm trying to shape what the path looks like. I share the excitements about the journey of learning new things, master some of them, leave my confort zone and become a "a super duper senior engineer". The people management part of it also terrifies me to an extend, im also an introvert and those things drain a big portion of my mental juice. I'm a "senior" developer right now and also would like to keep growing and this don't become and dead end, some times the day to day work feels like it, I'm working on having a learning path, searching for coaching and scape the dead end.

I'm very curious to see how things are going for you, best of lucks and thank you so much for this article.