Status: 3 YOE as SWE at a small nontech company, BS in CS from small no-name school
At both Amazon and Google I was interviewing for their version of SWE I and II, with my interview performance determining which level I'm placed at. (I know they use different terms internally like L3/L4 but I get confused as to what they translate to, especially cause each company does it slightly differently)
No specific questions will be disclosed due to signing NDAs at both companies.
Applied online and got a response about a week or two later to take an online assesment. The only part I didn't like about this was I got an automated response, without ever really talking to a recruiter. I can't remember the questions on the OA but they were pretty easy and straight forward to answer.
Amazon Onsite:
After my OA, I moved directly to the virtual onsite stage, which I scheduled about 1.5 months ahead. I'd already been interviewing at other companies so I felt this would be enough time to brush up on my coding skills, system design, and LPs.
Like mentioned on other posts, Amazon really cares a lot about their LPs as nearly half of all my rounds were spent on this, so don't try to wing it. Take some time to come up with good meaningful examples for every LP. My recruiter was able to tell me exactly which LPs I'll get questions on, so that helped me focus on finding revelant examples.
Onsite:
My onsite layout was 4 rounds with 3 coding rounds and 1 system design. Each round was about 20-30 minutes on LPs and rest on the technical questions.
Note: Each round was 1hr with a 30 minute lunch break half way through.
1st round:
This was the system design round, which I think went OK. In my experience system design rounds have always been really hard to gauge for me in terms of perfomance. I'm mainly a backend/database engineer so that's what I spent most of my time talking about, and I felt like I was able to give good answers for most of the questions thrown my way.
2nd round:
This is the round that got me a reject. It was a leetcode hard backtracking problem (one that I had seen before too) but I completely choked on this. I barely wrote any code down, and only towards the very end I understood what needed to be done, but by then it was too late. I don't like to make excuses, but I will say the interviewer for this round was also not very nice. Everytime he said something he seemed upset/annoyed, and as the interviewee that just made me even more nervous during the round. LPs were also not great on this round, the interviewer never seemed satisfied with my answers, but I tried to answer all his questions to the best of my ability.
3rd round:
This round went very well, got a very simple coding question (still a little surprised at how easy it was), and LPs went well too. Interviewer seemed to like me and we got along very well.
4th round:
This round went ok, LPs went fine with interviewer asking a lot of clarifying questions on my tech stack. The coding question was also a popular leetcode linkedlist question I'd seen before, but due to time spent on LPs and some technical difficulties (call got disconnected a couple times during the round) I wasn't able to finish coding the solution. But I'm confident with about 5-10 more minutes I would've gotten the solution, and I tried to convey that to my interviewer and he seemed satisfied with what I had and where I was going.
Amazon final thoughts:
I've interviewed with amazon several times now, and I will say I've always gotten at least one interviewer who didn't seem to like me right after the first question. Not sure if they were in a bad mood, or maybe the inflection in their voice just comes off that way to me, but it definitely throws me off, especially as someone who always so nervous/anxious during interviews to begin with. As far a coding questions go, I think just focusing on 150-200 popular leetcode questions and knowing them inside and out will help a lot. All the questions I got were seen on leetcode in some variation, and are found on the top leetcode interview prep questions list.
Applied online, and a recruiter reached out to me after about 1 month. Everyone at Google, including the recruiters, were extremely nice. I was moved directly to the phone screen, but due to some personal stuff I had to push back the phone screen twice, and my recruiter was extremely nice and flexible about reschduling my interview.
Phone Screen:
It was a really interesting question, similar to some common interval questions on leetcode with a bit of a twist. It was tricky but my interviewer was really nice and easy to work with. He had a thick accent, and we didn’t have the best wifi connection so communication was a little tough but we were able to get through most of the problem. I honestly didn’t think I did that well because there was an edge case I didn’t account for in my final solution, which my interviewer pointed out at the very end, so I was expecting a reject based on the high bar Google has.
Onsite:
By some stroke of luck I was moved to the onsite phase, scheduled about 2 months out. My recruiter told me based on my phone screen performance and resume, I’d be interviewing for an L3/L4 (SWE I, SWE II). She said I was fine on the phone screen, but for the onsite I need to be able to code faster, and get a solution working in about 30 minutes.
My onsite layout was 1 behavorial round, and 4 coding questions. No system design.
Note: Each round was 45 minutes with a 15 minute break inbetween, and a 1 hour break for lunch after round 2.
1st round:
This was a behavorial round with an engineer. Similar questions that you’ll get in the Amazon LP portion, so prepping for my amazon interview helped a lot with this. My recruiter said not to really prep for this round, but leading up to the onsite, they send you an email with some questions they may ask during this round. I’d suggest prepping a little bit, at least noting which stories/example you’ll use for what type of questions. Overall went well, the interviewer was really nice and had a nice convo about his work at the end.
Since the behavorial round is done, for all the following rounds we’d just jump straight into coding.
2nd round:
This round went very well, it was a simple graph problem and I was able to code the solution pretty quickly and another solution for a follow up that was asked. Interviewer was really nice, and overall my best round of the day.
3rd round:
The interviewer was probably the nicest person I’ve ever been interviewed by, extremely friendly and patient. The problem was a little tricky, it wasn’t a leetcode question as the interviewer said this was a problem he lifted directly from production. I didn’t do too well this round, I kept getting confused on what the requirements were. I was able to code a solid working solution by the end, but I could tell it wasn’t what the interviewer was looking for, as there was a more optimal solution.
4th round:
This was probably my worst round, the question was really difficult for me to get. I looked it up after, and wasn’t able to find anything online similar to this, but it looks like it would be a leetcode medium/hard binary tree question. Struggled to come up with the right solution, and only had 10 minutes to write some code down (one thing I’ve noticed is its always better to write some code down instead of nothing at all)
5th round:
This round was also very poor for me. It’s a leetcode medium binary tree question, but in my mind it felt like a hard, as the intutition you need to solve the problem optimally is a quite a jump. The actual code is so simple looking at solutions, but I don’t think I would have ever gotten the solution without seeing the problem before.
Google final thoughts:
Everyone was extremely nice, regardless of how much I was struggling on a coding round, or constantly rescheduling an interview with my recruiter. Its always refreshing to see, as someone who has been interviewing for a while now, it is not a fun process to go through and having nice people along the way always makes a huge difference. The coding questions asked were definitely tricky, but kind of on pace with Amazon. I got two binary tree questions back to back, so I guess Google likes asking them. It’s a little frustrating because their techincal rounds are definitely doable, and I know with maybe a couple more months of studying I could’ve answered all the questions thrown my way, but I guess hindsight is always 20/20.
Heard back from both companies about a week later of rejection via phone call with the recruiter.
Overall final thoughts (potential rant incoming):
I get really bad anxiety, especially leading up to interviews. It's something that I've struggled with a lot (I've been interviewing for a while now and for some reason my interview anxiety has not gotten much better. Any tips to deal with this would be great!). Sometimes my anxiety gets so bad leading up to the interviewers, I can barely focus on studying and I just end up trying to distract myself in certain ways to calm my anxiety. I try a lot of things like meditation, yoga, exercise, socializing, youtube etc. and its hit or miss. Sometimes those things help to calm my anxiety, other times it seems to do nothing. More than the technical stuff, this is probably my biggest hurdle, because I know that if I can calm my nervous and focus while studying, I am capable of getting any offer I want.
It’s been a frustrating job hunt for me, as I’ve been interviewing for about 1.5 years years now. I’ve onsited at 15 companies over that time span, and phone screens at probably 20 more. One onsite I actually passed at a large company, but I wasn’t able to find a team so no offer was extended. It seems like the bar is always going up for these coding questions and the onsites are tiring, with anywhere from 4-6 back to back interviewers happening in one day, my brain is always fried at the end. There are some days I want to quit all of this, and just find a chill job at a nontech company (or stay at a my current role) due my exhaustion/burnout, but on the other hand I feel so close to landing an offer I don’t wanna stop now. I know the difference from me right now, to me passing these interviews is so small, but that gap seems like the hardest one to close and it’s been a long, exhausting journey.
Sorry for the long post! It is honestly kind of theraputic for me to write this out, hopefully someone finds this helpful, and I’d love to hear tips on how you guys handle the stress of interviewing as well. Also happy to answer any other questions you guys have.