Since Amazon promised to follow up on my experience but never did, I figured this would be a perfect time to share it. This is a story of my Amazon recruitment experience. I wish I could say it was a pleasant one but sadly it neither had a happy ending nor a smooth journey. This is a retelling of the two tedious months that Amazon put me through only to tell me that I can't code, which I now find funny, but at the time it was rather insulting and humiliating considering that programming is a big part of my job and, at least in my opinion, I'm not all that bad at it.
Update: Thanks for everyone reading this, I really didn't expect such a huge interest in my story. Based on some comments I read it seems to me that the light-hearted humour nature of this post was missed by some. This post fits into my weekend/fun post, so parts are a little dramatic, but that's the fun in writing this. Enjoy reading the rest of the article!
I work in the integration/services space and have to write a large amount of custom code (Java, SQL, Bash, etc) to make products work together. It's not 'pure' engineering because it involves a good deal of customer interaction, requirements analysis, design work, expectation management, putting out fires and some people management. So typically whenever I'd receive a recruitment email from Amazon, it would go straight to trash because the jobs didn't really line up with what I wanted to do...until one day I had a crazy idea about going back into engineering. I had a colleague whom I worked with previously who worked at Amazon locally, so I went out for some drinks with the team to meet them, see what it was like and to decide whether I wanted to apply. It could have been a drunken decision but I went ahead with the application.
I sent in my resume and received a response from the recruiter the next day. They wanted to start the interviewing/recruitment process immediately. Naturally I was excited to get started so missed some of the obvious red flags here. The recruiter was in a different country (in fact a different continent) to me. From their responses, they either didn't know how to convert for time zones or really didn't care (outside of US didn't seem to exist for this recruiter). After several attempts of incompatible meeting time suggestions, two weeks later we were finally able to schedule an introduction call. I was surprised how little regard the recruiter had for the 17 hour difference in time zones and the fact that I have a full time job.
I was still looking forward to the call though!
Recruiter Introduction Call
The scheduled introduction call day finally came (on a Friday 7am for me, Thursday late afternoon for them). At 6:55 am, I was dialled in and ready to talk. Time went by and at 7:06 am an email arrived from the recruiter. They were telling me that they had another interview added to their schedule "last minute" so couldn't talk to me and asked if we could reschedule for the next day (Saturday my time - what?!). This annoyed me. They were saying that their time was more important and that a last minute change was OK even though it took two weeks to line up a compatible time in the first place. Completely unprofessional. Did I want to work in a place that was showing disrespect for the individual at such an early recruitment stage? I politely declined to reschedule for the next day and in hindsight should have stopped the whole process there and then. However, I was still excited so agreed to reschedule for the following week (yep having to wait another week - that's three weeks after the initial contact was made).
The following week I finally did manage to have that introduction call with the recruiter. It went on for less than 20 minutes. The recruiter didn't want to know about any of my past experience or my current job role. They were only interested in telling me about Amazon's 'Leadership Principles', which would apparently be tested throughout the recruitment process (spoiler alert - they were!) I did ask about the NY Times article about Amazon's work culture which the recruiter brushed off as nothing of consequence that I should be thinking about.
I asked the recruiter more detail about the job itself, which was for a Senior Software Engineer (L3). From their description, they led me to believe that it was work on backend functionality and had about 10-20% of actual coding time; the rest of the time was comprised of meetings, code reviews, design, planning, architecture, and on-call support. Seemed like the usual kind of senior role, and fit very well with what I was doing already.
The call wrapped up with the recruiter recommending that I take 2 to 3 weeks to study the kind of coding/algorithm/data structure questions that I would be asked before proceeding with the interviews. That was going to be the last I spoke to that recruiter until the very end of my recruitment process.
Next 3 Weeks
I spent the evenings of the next three weeks brushing up on my algorithms and data structures. This was not the kind of low level coding I've had to do in a long time, but I remembered a good amount of what I covered. By the end I felt like I've brushed up well enough.
This was the most stressful period out of the whole recruitment process. Mostly because I pushed myself so hard to work on these problems every single night. As a result I didn't spend a whole deal of time with family and friends in those three weeks. All I did was work my regular job hours, then immediately after study for a couple of hours, get some dinner, then study another couple of hours before bed time. In retrospect I should have taken more breaks, but that wasn't my style - once I set my goals, I work towards them.
I contacted the recruiter about a week prior to the end of my three week brush up period to schedule the phone interview. I got a reply quickly enough but it was from a new recruiter who I've not met yet. The interview was scheduled for a nice time, so I was under the impression everything was going to plan.
Nope. They changed the interviewer on me a couple of days after scheduling the interview. At least the time and date of the interview wasn't changed.
The interview day finally came. I was waiting at least 10 minutes past the scheduled time until I finally got the phone call. Groundhog Day recurring events again? The interviewer apologised and told me they didn't realise I was in a different country. Turned out the recruiter didn't bother to tell them about my location and hence no country code for my phone number.
The interview itself was textbook standard. We chatted about the job, did a bunch of situational scenario questions, then moved onto the coding part. I answered all of the questions and even went through a couple of optimisation phases of the coding exercise. The coding part was all done via a shared coding pad online.
At the end of the interview I wasn't super ecstatic but thought I did ok. The recruiter contacted me a few days later to say that the interview went well and that I'm moving into the next stage of interviews. More information to come soon on location, time and date.
Arranging the In-Person Interviews
More information did come, saying that I'll have 3-5 interviews throughout the day and to write back with a number of suitable dates for when I would be available. They told me that due to a lack of on-site interviewers that all of my interviews were going to be remote via video at the Amazon offices, except for the hiring manager interview. This took weeks to arrange on Amazon's end. In the end I was sent a schedule that showed that I'll be having 7 interviews total (what happened to 3-5?!)
I was also told to bring my own laptop so that I could do coding questions. They said if I needed that they could arrange a laptop for me, but it was played down as the least preferred option. I went with my own laptop which turned out to be a very bad option and caused me at least one of the interviewer's wraths.
In-Person Interview Day
I was anxious about this day, but I've prepared and made it this far so there was no turning back. I arrived about 10 minutes earlier than the scheduled time and waited in the lobby of the building, as per recruiter's instructions, because someone was supposed to meet me. On the hour there still was nobody to collect me so I sent a text message to the hiring manager asking whether I should just take the elevator up. There was no reply, so several minutes later I decided to head up anyway. You know, I didn't want to be late for the first interview session and all!
The hiring manager was summoned and looked a bit confused, but showed me to the video conferencing room where I'll be meeting the original recruiter to walk me through what to expect for the day. This was around 9am when everything was scheduled to kick off. So we sat around waiting for the recruiter to join the call. Quarter of an hour later - no show. Half an hour in and we decided to give up and proceed with the next interview.
It wasn't off to an encouraging start.
The next interview was scheduled as a coding interview but in fact was with a manager in charge of art and design teams working on games at Amazon. OK, again nothing resembling what I applied for. The interviewer was really nice. All questions were situational, we got on really well. At the end of this interview I felt like a million bucks. We did run overtime a little, oops.
The fourth interview was another coding interview. The hiring manager arrived and told me I had to change video conferencing rooms for this one. When I entered the next room, the interviewer was already dialled in and I could tell immediately that nothing I could say or do in this interview would be interpreted positively. I was late by quarter of an hour to this interview because the previous one ran overtime. Apparently it was late into the evening for this interviewer, he seemed in a bad mood and seemingly wanted me to suffer too. To make matters worse, my laptop had difficulty connecting to the screen sharing system in this room, which aggravated the interviewer even more.
It wasn't just a bad start to that interview, everything about it was terrible. The interviewer was one of those typical impossible to please/thinks he is smarter than everyone, long haired programmer guys. You know the type! I think this may have been the bar-raiser for me, or maybe he was just grumpy. The impression he gave off was that his field of IT was the only one that mattered and if you haven't heard some very specific terms from that field that you were a pathetic excuse for a human being. The questions were impossibly difficult without prior exposure (which of course I didn't have), but at least it was more in line with the job I applied for. Needless to say, this was my worst interview by far. I couldn't answer many of the coding questions during this interview because they were focused on specific algorithms that no amount of preparation would be enough - you really needed field experience here. No situational questions during this interview.
Lunch break. I was given a "lunch buddy" and told this was not an interview. I am not sure whether it was taken into account or not. I think there was at least some feedback, it sure felt like I was being quizzed the whole time. At least it felt more casual and relaxing.
After lunch it was time to talk to the recruiting manager. This was all situational. We got on really well too. I felt good about this interview.
The last interview for the day and I find out it's actually in person, not over video. Yet another last minute change! This one was with two people at the same time and in the same room as my last interview, so I was feeling a little bit on edge just because of that. The interview was about design, coding that design and then some situational questions too. I was physically and mentally exhausted by this point so didn't think I answered the questions to the best of my ability, but I tried. We wrapped up when someone barged in and said that beers are served. That was my queue to leave (no beers for me!)
I left the building at 4:30 PM. It was a full day of back-to-back interviews. I felt drained but thought I did really well in some interviews and despite the one absolutely terrible one I would be OK overall.
The next week I received a phone call from the original recruiter (yep the one who cancelled on me for the first interview and then didn't bother to turn up to orient me on the interview day!) Their feedback was that it was decided that I didn't show a high enough level of day-to-day coding ability and because of that I would not be given an offer. This felt like a kick in the gut, it was insulting and belittling...but they said that I could re-apply in 6 months' time. Within two weeks I had other Amazon recruiters from different parts of the organisation emailing me asking to line up an interview - no thanks!
So that was it. I have to say that I was severely disappointed by the whole process. Not because I didn't get an offer, but due to constant delays, last minute changes, all the turmoil and set expectations that were not met. It was very confusing because the Amazon leadership principles were pushed so hard, yet the very same Amazon staff, especially the recruiters, didn't seem to follow them throughout the process. The choice of interviewers was bizarre - very much a mismatch for the role they were meant to be interviewing me for; it's not often you apply for a job in one field only to be interviewed by people working in a very different field. So what I'd sum my experience up as is a huge disorganised mess.
In the end I was glad that I didn't receive an offer. It made me reevaluate where I was and I decided that I actually like the integration/services space a lot more than I originally thought. I get exposure to technical aspects of IT, I get to travel, I can develop my soft skills and work in leadership roles and overall it's a much more flexible area to work in.
If you're reading this ahead of your Amazon interviews - good luck, and you've been warned! 🤓 ...also Happy Halloween! (I know a few days late but this is how my Blog schedule lined up) 🎃