Mid To Staff Engineer In Two Years By Job Hopping
How an SDE-II at Amazon got two promotions by hopping jobs in just two years.
This week we’ve got a special treat. Kevin, a former colleague of mine, is going to go over his journey from mid-level SDE at Amazon to staff engineer through a series of job hops, and in the process nearly tripled his salary. His story is insanely valuable to anybody that may be in a similar situation.
Over to Kevin.
Hi, I'm Kevin, a Staff Software Engineer with 10 years of experience, including 8 at Amazon (where I used to work with Steve). I'm here today to share my career journey from mid-level engineer (SDE2 at Amazon) to Staff Engineer in two years.
In this post, I'll tell you exactly how I went from being stuck in a mid-level job at Amazon to getting Staff offers at hot tech companies like Meta, AirBnB, and OpenAI. You might think I'm just naturally good at interviews, but that's not true. I started out as a "bad interviewer" who rarely did interviews for Amazon. If you want to move up in your career by switching jobs or just get better at interviews, I hope what I learned can help you in your own tech career.
Why I Decided to Leave Amazon (2022)
In early 2022, after 7 years at Amazon, I was feeling burnt out. I'd been stuck as an SDE II for 5 years with no promotion in sight. The main obstacle to my promotion was that I had changed teams too frequently. Over those 5 years, I’d learned many different skills, but because my work spanned different organizations, it was hard for my manager to push for my promotion.
Since my manager didn't have a concrete plan to get me promoted, I decided to put my career in my own hands by applying for Senior Software Engineering jobs outside of Amazon.
Getting Started
It isn’t a secret that most tech companies' first technical interview is the LeetCode phone screen, and I knew I wasn't good at these questions. When I was in school, I had read "Cracking the Code Interview," but that book wasn’t sufficient for a modern day phone interview.
Luckily, my then-girlfriend (now wife) had recently got a new job as a Research Data Scientist. She took a coding class that helped her pass her coding tests and taught me two important concepts which helped me prepare better:
Coding Templates: Chunks of memorized code that can be reused to solve many common coding problems.
Problem Lists: Lists of problems designed to help prepare for key types of interviewing problems.
The problem lists proved especially helpful by providing a timeline for studying. I aimed to finish the lists in a month, then do some coding mock interviews with colleagues and friends. If things went well, I'd start applying to companies while preparing for System Design.
Phone Screen Failures
After a month of practice and mock interviews, my friends said I was ready for phone screens. My first few phone screens really stressed me out because I didn’t want to fail. I passed 3 out of my first 5, which doesn’t sound bad on paper, but felt frustrating because I had higher expectations for phone interviews, which are generally easier than on-site interviews.
After these first few interviews, I decided to make some big changes to how I practiced to help me visualize improvements and motivate me to stay focused:
I used a spreadsheet to track how I did on each problem. This helped me review tough problems later.
For each problem I practiced, I recorded my time and started by explaining my solution before coding.
I made my own templates and lists of mini-problems for easy review.
Practicing this way helped me visualize my progress and stay motivated. After another month of practice I started passing coding rounds more consistently and with more confidence. Over my next 7 phone screens I only failed 1.
Overcoming System Design Hurdles
After getting better at phone interviews, the next struggle was passing on-sites. I failed my first three onsite rounds back to back to back. My area of weakness was the System Design Interview. I knew how to build good systems from my time at Amazon, but I couldn't translate that into a 45 minute interview. I had one more interview left but I felt discouraged and lost.
Two things helped me. First, I found a good resource for System Design interviews on YouTube. Second, I got feedback from mock interview coaches.
With only one company left to interview with, I paid for two mock System Design interviews. These mock sessions clarified how to show my experience and draw good System Design diagrams. After these practice interviews, I started getting ready for my last interview.
Landing My First Senior Role
I still remember how stressed out I felt after finishing my last interview. At the time, many companies froze hiring and the period of layoffs had just started, so it really felt like this round was my last chance.
A week after my interview, I got good news - they offered me the job! The offer was with a well-known tech company with a good culture and work-life balance. My job title went to senior, and my pay more than doubled from just over $200,000 to almost $500,000.
Navigating Layoffs (2024)
In February 2024 my life took a big U-turn. In 2023 I got engaged, bought a house, and started planning a wedding. Then, suddenly, one February morning, I found out I lost my job when I couldn't login to Slack and my head filled with worries.
Maybe I got lucky with my last job offer? What if moving companies was a big mistake? How long will it take me to get a new job? In the current market will I need to settle for a worse job with less pay?
My new mortgage and upcoming wedding amplified all my concerns.
However, the thought that scared me most was stagnating my career.
My former role was a “Senior Software Engineer II” role which was between most companies Senior and Staff level in pay and scope. Going back to “just” a Senior role felt like a step back that could delay my progression to Staff by years. After being stuck, undervalued as an SDEII for 5 years at Amazon, the idea of banking on a promotion wasn’t appealing.
If I could achieve a Staff role, I could prove to myself that my fears were unfounded and my career wasn’t stagnating. So I decided to target Staff positions.
Starting Over, Again
Creating a new study plan, I had a few new considerations:
Prepare for and anticipate some failure: In 2022 it took me 5 on-sites to get my first offer.
Feedback is critical: Mocks and materials from experienced engineers were critical to my offer success.
Speed: I wanted to expedite an offer and to maintain career momentum. Especially with my upcoming wedding, I'd like to get a new job sooner than later.
Market conditions: The market had more job openings for Staff+ than in 2023, but offers are harder to come by since the bar for staff offer was raised.
My plan was similar to 2022 with the following changes based on these considerations:
Increase preparation intensity
Do paid mock interviews from the start.
Schedule at least 5 on-sites at “practice companies”
Interview with all my top-tier companies after the practice companies
Prepare tier 2 on-sites in case I fail my top-tier companies
Working right to left, I made sure to keep my application and recruiter pipeline engaged to hit my on-site targets. Using my 2022 practice schedule as a reference, and buffering for phone screens, I figured I’d be ready for my first onsite in about 2 months.
Failing Four On-sites
Two months later I was landing interviews and I passed nearly all of my phone interviews. I was on track to have 6 - 7 “practice” on-sites scheduled and it was time for my first on-sites.
But the initial results weren’t great.
I failed my first four on-site interviews.
Even though they were “practice” rounds at companies I didn’t want to join, the failure still hurt. As I anticipated though, the feedback from the on-sites proved invaluable. One recruiter gave me some especially helpful feedback:
"Everyone thinks you’d fit in well. Your interview performance isn't bad but it isn't strong enough for us to hire you right now."
This was disappointing but also a relief since I was doing "okay"—at least I wasn’t bombing interviews. I asked for more details which confirmed my suspicions—I needed to work on my Project Deep Dive and System Design.
For the Project Deep Dive, I made PowerPoint slides to help me explain my prior projects more clearly. I focused on clearly showing how I handled ambiguous situations, influenced others, and made an impact.
The recruiter’s feedback also hinted that my System Design and Behavioral rounds weren’t “raising the bar” enough to get me an offer. To address this I set my mind on crushing the System Design Interview to make my on-site stand out. I found a blog from a Staff engineer with really good System Design Interview answers that I studied in-depth. After studying the materials, I developed a consistent approach to the system design interview.
Pushing Through Senior Offers
Two weeks after my failed on-sites, I did a phone screen with Snowflake and did two more on-site interviews. I also scheduled my first top-tier on-site, Meta.
A week before my that interview, during a different interview I was down-leveled to senior, and I got two offers, both at the down-leveled senior level. This stressed me out as I wanted to get my first Staff offer before interviewing with my top picks.
I briefly contemplated accepting these offers, given my long bout of unemployment, the tough market, and my upcoming wedding. But I had four on-sites coming with my top-tier companies including: Meta, OpenAI, and AirBnB. I also had a healthy list of tier-2 companies, so I decided to power through and hold out for a Staff offer.
Success
A week after my Meta interview, I got a call and found out I got my first Staff (L6) offer!
Words cannot express the sense of relief I felt getting a Staff offer at a top company. Since Meta was slow to match me with a team, I focused on the other top-tier on-sites that I had lined up.
As the weeks went by, each on-site felt a little smoother than the last. And at the end, I got the news that I passed all four, and received Staff offers from each!
Getting four Staff offers at my dream companies, all with over $600k pay, was amazing, beyond my wildest expectations.
I spent the next few weeks talking to each of the companies to find the best fit, and then taking a well-deserved vacation to relax.
Takeaways
From beginning to end, it took me 5 months to land a new staff job. During the process I learned a few things that surprised me:
Interviewing is a skill: I found out that interviewing is like any other skill - you can improve with practice. The more intentional the practice the better, and getting coached through "mock interviews" can save a lot of time.
Interviewing skills are useful: I used to think interviewing was a waste of time, but to my surprise I learned a lot. I picked up new tech knowledge and got better at explaining complex ideas simply. I also learned how to effectively sell my work.
Interviewing is a way to control your career: Interviewing, unlike a promotion lets you directly vouch and demonstrate your skills. Getting better at interviewing let me control my career and taught me what the market values in an engineer beyond my current company.
Interviewing is a numbers game: It’s cliche but true. Unlike what social media shows, interviewing takes many trials.I’m grateful to work with Steve and share my experience to give others a healthier, alternative perspective.
After my experience, I'm less scared about future interviews now, which feels freeing. If I had to do it again, or help a friend, I'd suggest:
Start with interviews at companies you're not super excited about
Do some mock interviews, especially if you're short on time
Keep finding ways to improve and effective feedback loops. Take notes on what you need to work on and ask for feedback after each interview.
For higher-level jobs, be careful with YouTube videos. It's better to learn from experienced engineers like Uncle Steve.
Starting Your Journey
Interviewing is stressful. It's about your financial stability, career and how most of your time will be spent. Knowing that interviewing is a skill you can learn, I spent a lot of time mastering it.
In the weeks between jobs, I started mentoring people through tech interviews. I also wrote a guide on acing the tech interview, with more details on my journey and common feedback I gave my mentees. If any of this sounds interesting, check out my site at staffgg.com.
Speedrun To Promotion
I just opened up a limited amount of seats to my program, Speedrun to Promotion. It’s a program that I designed to help tech professionals get promoted as quickly as possible.
To give you a taste of what the program is like, I’m giving away FIVE of my best videos, all for free. I’m calling them my “5 essential frameworks for promotion”. To get access, simply click here.
New YouTube Videos
In my latest video I go over whether dev jobs are safe with the advent of AI.
Here’s a video on why you’re not getting promoted to senior developer.
It would be great if you can share you prep resources as well both for leetcode, system design and behaviour prerp.
This is really inspiring, thanks for having Kevin sharing his story with us. I wonder if he's willing to share the link to the blog of the Staff engineer with good System Design answers mentioned in the post as well.