Reflecting on my IC path, Part IApr 6th, 2020
As an Engineering Manager, a big part of my job is to help engineers on my team pursue growth in their careers. Will Larson started StaffEng.com to share stories of reaching Staff Engineers. I find the stories there impressively helpful in thinking about senior engineer roles and individual contributor roles in general. I would also like to reflect on my own IC path in case that is useful1. In the first post, I am going to reflect on some early misbeliefs I had on leveling.
Leveling through K-12 grades
I started my professional career as a software engineer in the summer of 2009. Microsoft extended me the offer in November 2008, two months before it announced 5,000 job cuts in its first ever major layoff, to work in their Beijing office. I did not fully grasp what a financial crisis meant back then, but I did feel fortunate to join the Office division and to work on Office Communicator, later rebranded as Lync2,3.
Microsoft has this intriguing leveling system that reminds you of your favorite RPG games like the World of Warcraft. As an undergrad, I started as a Level 59 Software Development Engineer. In theory one could stay on the individual contributor path forever to get to Level 80, the Technical Fellow. And I was determined to pursue that.
My mental model for leveling was pretty dumb back then. It is like K-12 grades. You go to school, you do good work and after the end of the school year you level up. I loved my job and thought I did great work. I made a custom Silverlight inspector while building the admin web console for Lync Server, acted as the Product Manager for a year while still writing code, and engaged with our users to provide customer support via the Microsoft TechNet forum.
Thanks to my great leaders and managers, my naive thinking of leveling did not stop my career progression. I got three promotions and made it to Level 62 in 3.5 years, but their support could only go so far without me changing my mindset. I stayed at that level until I left Microsoft in October 2015, by which time I had relocated to the company headquarter in Redmond, Washington.
I was confused. I worked wholeheartedly, thought I did a great job, got consistently great performance reviews, and made a few promotions. Yet after six years, my role was equivalent to a Software Engineer 2 in most peer companies.
Leveling up as a different job
During my last week at Microsoft, I called a boss and friend, Rus Rice, who managed me for a year. We had lunch together. I told him I was leaving, and sought career advice from him. Most specifically and frustratingly, I asked, how could I become a senior engineer?
Leveling up is not automatic, Rus said. You could not sit there and wait for your manager to level you up. You may be doing a good, or even excellent job at your current level, but that does not automatically mean you are going to perform as well at the next level. To become a senior engineer, you would need to actively communicate your ambition to your manager, and to proactively perform as a senior engineer. And no, doing more of the same work would not translate to leveling up. To some extent, it is not the same job across two adjacent levels.
I was so excited that I got a clear-cut answer. I might have been doing a good job at my then-current level, but I was too focused on adding value linearly, and did not spend enough time thinking about step-function improvements. I finally realized that careers are not like schools. In schools, grades are leading indicators. At the start of every school year, you level up, learn some new lessons and work on some new projects. In careers however, getting a good grade and finishing a year does not guarantee a level up into the next grade. Instead, I should treat leveling as a lagging indicator. The change has to start with my mindset and my behavior. After all, most every tech company requires you to already perform at the next level before leveling you up.
That conversation stuck with me. It was going to be an inflection point in my career.
I contemplated writing my story for StaffEng.com, but eventually decided against the idea. I feel more comfortable writing my narrative here without abiding by the template. I thank Will though for the great inspiration. ↩
You may notice a striking similarity between the names Lync and Lyncredible, which is not a coincidence. ↩