Amazon | SDE2 | May 2020 [Rejected]
Anonymous User
1196

Hi everyone,

Position: SDE2 AWS
YoE: 4, 3+ required.
Basic Qualifs: no relevant education, save Science Degree with some track record in math + actuarial science; BSc CS or equivalent experience required.

First FAANG interview ever. Got scheduled for an OA 2 weeks after applying online.

OA:
Asked to find all competitors listed in one array, and count their recurrences, in reviews of Amazon Alexa competing products in another array.
Sort Log File (question on LeetCode).

Completed the first one in about 35 mins.
I work on call after work hours, got called during OA, if called i'm expected to answer, couldn't finish second exercise on time due to having to handle this work emergency (COVID expectations, YAY).
Explained this in the OA comments.

Recruiter replied next day saying i passed OA (lol?), scheduled Coding Interview by phone. Engineer was nice, kept it to the point.

Coding Interview:

Intro: took 10 minutes
Introduced himself, his background, where he works at AWS.
Asked me to introduce myself, i did, explained my background a little bit, he asked questions and brought us to the coding portion. I was clear from the begining i did not come from a CS background, and that I've self-tought myself into SDE jobs.

Two CS primers: (took 5-8 minutes)
which data structure would you use for a phone book? i explained i would use a TRIE.
array vs linked list:

  • can you explain in one sentence what is the main difference between the two structures? I said: in a linked list you know the first and last elements, and must iterate from either ends to get anywhere, wheres an array, you don't, but you can begin an iteration at any point in the array.
  • which, in your opinion, is the ideal data structure if you'd like to find the middle-most element? i said, since in languages being interviewed for (JS and Java in this case), you have length properties accessible with O(1) for arrays. whereas for linked lists, you don't usually know their length, and thus you can expect to perform O(n/2) to find the middle, so you should use arrays if time complexity is a priority. expanded to saying, if the order is more important, a linked linked might be better depending on other factors.

Interviewer was pleased for both answers.

Coding:
Took 35 minutes.
Find the substrings of length K in a DNA strand of length N which appear AT LEAST twice.
Ran a for loop, used hashmap and counters in hashmap for all substrings found.

Didn't remember three things:

  • To start my function with parameter definitions (you had to code it from scratch), he reminded me after i typed the first line (so perhaps not a factor, but eh, will remember this one for sure).
  • When asked why i used a hashmap, interviewer expanded to "can you explain how a hashmap works, and why it's so fast?" Remembered the mechanism, and why it's faster, but didn't remember the mathematical equation itself (modulo) for Javascript, which he expected me to know i think.
  • The time complexity of the JS substring convenience method (which in this case, is always O(K)), i couldn't remember it for some reason, but i basically dissected the substring method's mechanism to get to the function's proper time complexity.

Post coding.
He apologized saying he shouldn't have asked the CS primers at the beginning as we now had less than the 20 intended minutes to cover my CV, but we ended up going over by 10 minutes or so anyways.
We stuck to my SDE experience, and prior experience with raising money successfully for an app, not even my current job. Context: this never reached scale, and only managed a soft-launch.
Asked what was my most challenging moment these past years, tied it back to a period where i had to learn and figure out how to cut down costs on AWS (ironically), which i managed to do alone in 2 months for a three-part microservice architecture distributed over two regions. Explained how i migrated key elements from server-side to serverless on Lambda, explained the three components, what they did, my design choices, technical hurdles, etc.
For some reason, during this answer, interviewer kept asking side-questions upon side-questions based on some facts i'd bring up, and would then cycle back to the original question with "okay, let's cycle back to how you fixed this challenge then". Did this 2-3 times, which didn't seem to be a problem since the interviewer seemed to be asking out of interest, even though each time i would try to provide the answer, they would take me into another side-note before i could actually provide it...
We also spoke about the business aspects i've worked on in the past, and how i handled frustrating situations. gave my usual answers that don't fail me, and they didn't seem to ring badly with the interviewer in this case either.

Thinking back on it, this part seemed to be more like something that should've happened at the onsite, not during a 15 minute crash session..

Impressions:

  • The coding was easy, i was pretty lucky on that front.
  • The resume portion seemed to ring alright with the interviewer.
  • I have a feeling my not knowing certain theoretical details (modulo, perhaps i didn't elaborate enough on the phonebook question, forgeting the substring time complexity) right off the bat dinged me on this one.
  • Was also probably due to a lack of experience in Teams, i had the impressions he picked up on that and simmered on it at one point.

Heard back the next day, which was expected as he told me to wait up to 2 business days.

Followed up, got no feedback but that my interview results will get circulated, which is probably a go-to line.

Comments (0)