Transitioning to a Staff Engineer

Freeze Francis
Level Up Coding
Published in
7 min readFeb 18, 2023

--

After spending 1.5 years as a senior engineer, I was promoted to staff software engineer in the early 2022 and I would like to share what my initial days in the role looked like, the learnings I had, and how I finally made a complete transition into the role.

Photo by Parabol | The Agile Meeting Toolbox on Unsplash

How did I end up in a staff engineer role?

In most companies, you get promoted to the next level only when you are consistently performing at that level while you are at the current level. My case was no different and I had been doing the following before I was promoted:

  • I had been a senior engineer in the team who built and maintained a product feature from scratch. I had a strong grasp of our codebases inside out and made architectural/design choices for complex parts of the feature. I became the go-to person on the team and a buddy for all the new joiners whom I helped to onboard quickly.
  • I was also the scrum master in the team and did most of the project planning/management activities like organizing the sprint ceremonies, breaking big tasks into workable chunks, working closely with the product managers and development manager, etc.
  • I did most of the communications for the team with all types of personnel like engineers, business teams, product managers, engineering managers, etc., and also represented the team in cross-team discussions.
  • I was fortunate to be in the right place at the right time and delivered several big milestones consistently and independently, and had a significant influence on my team and naturally gained their trust.

One fine day my manager told me during my 1:1 that he thinks I’m ready for the next level and in the next cycle I got promoted to a staff software engineer which was more of a technical lead role in the team which apparently was a gap I was naturally filling. I was super excited but little did I know what was coming my way!

Initial days

Since I didn't have clarity on what the responsibilities of the role were, I just assumed it means to push 10x more code and so I started taking up most of the bigger tasks on my plate and also started to peek into other team's issues, especially the teams I worked closely with. I was too busy writing code and fixing stuff that I and my team had already developed a huge gap in terms of technical skills. I didn't give it much thought since I believed it was my manager’s responsibility to take care of and slowly the knowledge started to concentrate solely on me and resulting in a single point of failure in the team. Things took a different turn when there was a huge change in the org structure due to which I got a new manager and the team dynamics didn’t look right in his eyes. He tried to communicate it to me a couple of times but I couldn’t figure out a solution for it back then.

Self Realization

My mid-year review was scheduled for 2022 and I was supercharged thinking about my achievements. My manager had the chance to look at my self-assessment document and set up a quick call to tell me that I need to rewrite the whole thing to reflect what I did for the team and also stressed what exactly was expected out of my role. And it was at this moment that I realized I was doing everything wrong!

And this is where things started looking grey for me regarding what I should be doing in my current role. When I revisited my performance review with a new perspective, I couldn't find many examples where I did justice to my role. The biggest realization was that I did little for my team to grow even though there were plenty of opportunities.

One huge relief was that I had gradually started doing some initiatives which showed I was moving in the right direction as a staff engineer. The mid-year review was an eye-opener for me and my manager gave me a lot of insights into what is expected out of me moving forward. This helped me plan the next half of the year with my primary focus on growing the team's capabilities.

The Transition

  • “It’s not me anymore, it’s all about my team”: The first major change was that I had a paradigm shift in the way I thought about my team and the tasks that needed to be accomplished. I slowly identified the strengths and weaknesses of my teammates and I tried to assign certain tasks to them that would fill a gap in their skills and that will be helpful for them to move to the next level. Doing this continuously helped in broadening my team's skills even though it might have taken longer for them to complete a task the first time.
  • Art of delegation: As a staff engineer you have a track record of delivering hard ambiguous tasks, and the product managers would be fond of you taking more on your plate which might leave less challenging tasks for others in the team. This is why I decided to delegate almost all the critical/large complex tasks in the sprint and left them for other engineers in my team to work on by giving just enough guidance. Although it felt very odd for me to take my hands off the keyboard, it gave the team enough room to grow and gave me more time to research/contribute to other company-wide initiatives and fix technical debts which nobody wanted to touch.
  • Active Listening: As a result of delegation, I was left in a tricky situation where I wouldn’t be writing any piece of code whereby I lose control of the tasks but at the same time, I had to make sure my team still delivers without getting blocked. This is where the art of listening comes into play and why constant communication within the team is really important. I learned to listen very carefully and keep notes on what my teammates would say in standup meetings and understand the problems they are facing and try to clear them out as early as possible. This usually means that I need to be ready for hard ambiguous technical problems, ask a lot of questions, and make certain tradeoffs/decisions for keeping things moving.
  • Taste of a Manager’s Path: I also realized that there are a lot of overlaps between a manager’s and a staff engineer’s responsibilities. As we move up the career be it either the Individual Contributor path or the Manager path, leadership skills are required to be successful. I was already making most of the technical decisions for the team and I only seek my manager’s expertise when I can’t make a concrete decision. There was a point in time when my manager gradually stopped showing up in meetings involving the team which is a sign that I was given the added responsibility of taking necessary decisions. The things I wasn’t probably doing for the team were creating OKRs and people management aspects like 1:1 meetings and performance reviews.

Learnings

I believe transitions from junior to senior engineering levels were far easier since the expectations were more on the individual contributions but the moment you start entering the staff+ engineering levels you need a big shift in mindset as it demands more than just technical expertise as you are a local leader in the team. I wished I found the leveling guidelines provided by the company early on so that I could’ve been better prepared but anyways I learned it the hard way.

One thing that I got uncomfortable with after taking on the new role was that I had almost no time to write any code since most of my time goes into meetings, code reviews, design reviews, hiring interviews, etc. It took me some time to normalize this but then the fact that my teammates could compensate for it by becoming more productive made me worry less about it. Another challenge I faced being at the staff engineer level is what path to take next: Principal Engineer or Engineering Manager? This is an interesting topic on its own and worth writing a whole article on and as I complete this article I already made this choice!

In my challenging pursuit to be a better staff engineer, I am proud to have contributed to the growth of my team’s technical competency. I am grateful for the opportunity to have worked alongside two exceptional teammates who were recently promoted and it was indeed a rewarding experience to witness their professional growth and development.

Level Up Coding

Thanks for being a part of our community! Before you go:

🚀👉 Join the Level Up talent collective and find an amazing job

--

--