Career Development
I first joined Microsoft early 2018. I came in as a L61 Software Engineer 2. Confused at what that means? Me too. When i first joined the company, I didn't have any idea about leveling and career placement. In short, a "Software Engineer 2" is a mid-career Engineer. The level of L61 is the more "junior" version within the job title. In this case, L62 would be the more later stage of a mid-career Engineer, confusingly can be thought of as a more "senior" version.
Microsoft calls Software Engineers "Individual Contributors", or "ICs". From here on, I will use these terms interchangeably.
Here's how it works like this for a Software Engineer IC (Individual Contributor):
- L59 - L60 - Software Engineer (Early Career)
- L61 - L62 - Software Engineer 2 (Mid-Career)
- L63 - L64 - Senior Software Engineer (Senior-level)
- L65 - L67 - Principal Software Engineer (Late-Career level)
- L68 - L69 - Partner Software Engineer (Director level)
- L70 - Distinguished Engineer
The internet has a lot of information about the Microsoft leveling system and career ladder, so I won't discuss much further. It's strange to think about it now, but at the time, I guess this type of information wasn't really on top of my mind. In retrospect, it led me to be not equipped for proper negotiations when I had my first offer.
I didn't even know that I was going to be an L61 IC when I first joined. I had gone through interviews and had competing offers, but the team I interviewed with at Microsoft was so great, that it was an easy decision to join. Had I known about the leveling and career ladder prior to joining, I would've asked about that during the interviews. I think I would have attempted to negotiated for more compensation, or at least justify to be a L62 Software Engineer 2 instead.
Just to set context, I was already 6-7 years into my career, and I was actually looking at myself as more of a "Senior" level engineer. Again, I absolutely had no idea and career development wasn't the primary focus of my err... career at that point. I was mostly focused on learning as much as possible (true coder mindset 😅).
Anyway, I worked really hard and loved what I did. Therefore, coming in slightly under leveled wasn't as big of a deal for me in the long run. In fact, it may have been a good for me that I was at L61 as it allowed me to move at a slower pace, seize opportunities to learn and succeed in such a big company like Microsoft. I guess my first advice of reassurance from my personal experience and perspective is to not worry too much about your level at a company. As long as you're happy with the compensation (I was), overall package (great benefits, more on that later), and team, I'd say the situation in being "under leveled" is not a huge deal. What I generally suggest is to see situations like this with a different perspective in that it could be the opportunity to learn and also be able to deliver results without feeling the pressure to perform at a higher level until fully acclimated.
I had a total of 3 managers at Microsoft, so I'd say my career there was stable. I am very aware that Microsoft has a bit of a reputation in having many "re-orgs" internally. Organization shifts can hurt in a way that a shift resulting in a new manager, This may cause an IC to have to rebuild their reputation and rapport. Too many organization shifts can cause career stalls if especially being re-organized into a completely different team with a different charter. All of this is just my opinion since I'm not an expert in organizational theory or HR, etc.
Each manager I had was either a manager who once had been my skip manager, or someone who ended up being promoted up from within my own team. I think it's important information for me to be transparent about this experience since I believe it softened the impact of the re-organizations would have on my career. Each re-org led to a manager whom I was familiar with, and consequently always had context to what I was working on.
With a combination of having stable management, and my nature in working very hard in general, I would say that coming in at L61 wasn't a huge disadvantage in the long term. It did not hurt my career or slow me down in any significant way. A big part of that is due to my own self-motivation to do well, and put interests on team and company first. I was recognized for my impact by my peers and managers. It does seem a bit awkward to say something like this... but hard work is indeed recognized. Here's what I did to make sure of that:
- I took every performance review seriously. At Microsoft, we had a thing called "Connects", which is basically a "360 feedback" type of review where you review yourself along with your peers and manager giving feedback on your performance. I made sure that my Connects were always as detailed as possible with data about own performance and also critical feedback about myself where I could take action for the next cycle. I was also not afraid of receiving feedback from my peers, and made an effort to request that feedback. I wrote my Connects with as much detail as possible to communicate to my managers that I was aligned with organizational goals and executed towards them in mind.
- I never had trouble getting feedback from my colleagues. It was not because I was some super famous IC at Microsoft. Far, far from that. It was because I had a policy for myself that I would give feedback to any colleague in and out of my own organization who requested it. I always felt a sense of gratitude for assistance in the past, or minor constructive feedback was better than nothing at all. Ideal intentions was to give enough feedback have a colleague paint the picture of what actions they can take for their own performance going forward.
- I voluntarily always went for the more technically challenging problems. I stretched myself regularly and was always up for the hardest challenges to learn more. After every experience in solving hard problems, I prioritized a period of reflection for myself to run through play-by-play on what went well, what could have been better, and what I should've avoided to make the next problem to be solved a much easier one.
- I made sure to communicate well to my colleagues, managers and leadership team. As an IC, I had the advantage of being in the nitty-gritty of things, and that would mean that I always had a pulse on the technical challenges and problems occurring. Although that makes it seem like I ALWAYS have good decision making skills within the broader organization, we all make mistakes with the information we are given. Admit to that early. That is why I communicated often to leadership about current happenings so they can gain context and make the best calls for everyone. I saw over communicating as better than not communicating.
There are lots more that I think helped me in my path from L61 to L64 in such a short amount of time at Microsoft. A lot of it for the above reasons, and some of it with just being at the right place at the right time. Regardless, career growth was such a huge part of my experience at Microsoft. I matured a lot from being one of the more junior ICs in my team, to being one of the technical leads in the same team.
Lastly for this discussion, I'll also be honest that the choice of project has a lot to do with your career growth at Microsoft. At least, that's what it has seemed for me. I worked in a product that was growing very fast (Teams). I had the opportunity to be a part of a team that developed one of the most visible features in the product (chat). That's a factor there.