This is part II of my journey from liberal arts major to Amazon Principal Engineer. Enjoy!
Mid-level to Senior SDE (2009-2012)
By 2011 I had been an SDE for over three years, and at Amazon for over five years. I was working on a new product and on a dev team of about 8 SDEs. Amazon decided to invest heavily into this new line of business and we needed to ramp up hiring to well over 100.
Interviewing at Amazon is based on volunteer time. Getting the necessary training, conducting the interview, and attending the debrief for a candidate is time that doesn’t go towards delivering on projects. There was a lot to do, and almost no time to do it.
I recognized that the biggest risk to the business was not the immediate deliveries in the 0-3 month time-frame, but big projects and initiatives that were going to land in 9-12 months. The large risk to those mid-term projects was staffing an order of magnitude more engineers, and the biggest bottleneck to staffing was interviewing.
It dawned on me that the largest impact I could have on the project was to contribute to building this large team, so I decided to become an Amazon bar-raiser. A bar-raiser is a volunteer that is an expert interviewer, who leads interview debriefs and has veto power over offers. The year that I became a bar-raiser, I conducted over 150 interviews, and played an instrumental part in staffing the organization with top talent.
Because we were able to hire well, the business was successful and pulled in a ton of revenue. However, because of the increased revenue, we were fielding a ton of support calls from sellers, who were local businesses. The support staff was drowning in the calls and they were reaching out to the dev teams for help with payments, reporting, and other operational issues. It was getting to the point where support issues were stealing valuable dev cycles for newer capabilities. I recognized, because of my support background, that most of these issues could be resolved in a self-service manner if there was a portal for sellers similar to Amazon’s backend portal, Seller Central.
I pitched the idea of a local business portal to my manager, who smiled and said that the senior management already had that same idea, but none of the senior engineers on the team wanted to pick it up because seller payments, reporting, and operational ticket tracking wasn’t considered exciting work. I volunteered to lead the project from the engineering side. The scope of this project was more aligned with senior engineer expectations, but because I had preemptively pitched the idea and other senior engineers weren’t interested, I was assigned to lead the project. 4 months later the backend local business portal launched. 10s of thousands of sellers were registered, operational tickets plummeted, and a bottleneck to the business was addressed.
I was promoted to SDE-III (L6) in 2012 largely because of my prolific interviewing and the launch of the backend seller portal. Although I contributed a lot of high-quality code during this time period, it was my technical leadership, specifically growing a team through hiring and leading a high-visibility project that made me stand out. In both cases, I recognized a bottleneck to my team’s success and proactively contributed. I was not passively given or assigned this work. Also, in both cases, after I identified the opportunity, I had to put in more hours and effort because to be successful with next-level scope I had to acquire skills that I didn’t have.
Takeaways:
- Being proactive is the defining characteristic of becoming a senior developer.
- Senior engineers are technical leaders on top of being the primary code contributors.
- Conducting interviews is an activity that sharpens your communication skills, demonstrates active contribution to growing your team, and keeps your own interview skills from getting dull.
- Sometimes the most impactful work isn’t the most interesting on the surface. It’s important to be open to all opportunities.
Senior SDE to Principal Engineer (2016-2020)
Amazon lacks a staff and senior staff engineering level. The next level up is to Principal Engineer. Because of this, the Principal Engineer promotion is one of the hardest promotions at Amazon and is widely regarded as one of the most difficult promotions in big tech. I know many people that were senior engineers at Amazon who were unable to secure a promotion, left for other big tech companies, and are now L7, L8, and even L9 engineers at companies like Google and Meta.
By 2016 I had been an SDE-III for 4 years and I thought I was ready for promotion. By that time I had helped kickstart multiple lines of business for Amazon, going from 0 → 1, designing, building, and launching operationally excellent systems that scaled globally to hundreds of millions of customers, worldwide. I had led many cross-functional projects with a large number of dependencies, high complexity, and thorny technical challenges. I had helped staff many teams, and when they came on board I created training materials that got them up to speed quickly. I had filed and been granted several patents, oftentimes authoring them with principal and senior principal engineers. And I acted as a mentor and advisor to the engineers within my organization.
Because several middle managers left the company simultaneously, and the fact that my director didn’t want a senior engineer reporting directly to him, I was reporting to a manager who was a level below me. After about six months I finally reported to a senior manager. I was excited to have someone there to help me push my promotion through, but I had a problem. He was one of the worst managers I’ve ever had.
He was a micromanager. He wasn’t technically deep. And he wasn’t a good communicator. He also constantly promised to do things but never followed through. An example of this was putting in a formal request for my promotion. Without this request, I would have to wait another 6 months to start the process. I reminded him constantly, and he promised to do it. But the date passed and he never put it in. To this day I still wonder how he got to where he was and what he’s doing today.
About three years later I reported to one of the best managers I’ve ever had. He wasn’t a micromanager. He was technically deep. He was a great communicator, and he always followed through. He authored my promotion document and shared a draft with me. But when I got put up for promotion, my packet was rejected for a simple reason. I had stopped doing all of the things that made me a good senior engineer and only focused on the tasks that demonstrated that I was operating at the principal level. I needed to get back to basics.
I was devastated because this was the 4th time I was put up for promotion since 2016. And to make matters worse, my manager, who I got along with, was leaving the company. But, since he was such a great manager, he made sure to properly transfer my packet to my new manager, put in a good word for me, and gave me an unexpectedly large raise on his way out that put me close to what I would be making at the next level. What a guy!
I spent the next six months making sure to be the best senior developer I could be. Now that the stars had aligned, it was time to put in the extra effort for a final push. I wrote a ton of code and authored several lower-level design documents. I put myself back on the oncall rotation. I came back to daily standup and planning meetings.
When my packet was rejected for the fifth time, the feedback was simple. It was because I had only done the senior engineer tasks, and I hadn’t adequately demonstrated any principal-level performance over the past six months. This rejection still hurt, but I knew that my next packet was going to go through because I understood exactly what the expectation was. I needed to be a great senior engineer and show that I could handle the scope as principal engineer, simultaneously. I made a plan to demonstrate both with my new manager, and I was finally promoted to principal engineer in Q1 of 2020.
Takeaways:
- Your manager is the most critical relationship at work, and especially for promotion. If it’s not great, you should strive to strengthen it. Think about moving teams or switching companies if you’ve tried for a while unsuccessful at this.
- Getting to the next level requires exceeding expectations at your current level, as well as demonstrating that you’ll do well at the next level. Only meeting expectations at your level or only doing next level work isn’t sufficient.
- The best feedback for promotion is a prior promotion rejection. It will tell you exactly what you need to work on for the next cycle. Focus your efforts on these items by building a specific plan so you get unstuck, either to another gap you need to fill, or to your eventual promotion.
Conclusion
As you can see in my journey, growth came by assessing what was going on around me, setting aggressive targets, and choosing specific times to put in extra effort. A lot of my success during the corporate portion of my career can be attributed to luck and circumstances, but I’d like to think that at least part of my success came from employing this simple recipe.
I never did become a writer in the sense of what I wanted in college. But now that I'm a full-time content creator, I write every day, so in a sense my writing degree was a large benefit to my career. And who knows, maybe one day I’ll set an aggressive and ambitious target to become a more traditional creative writer if the situation presents itself. But for now, I’m happy to create content by sharing my experience to help others grow their careers.