I applied through college or university. The process took 1 day. I interviewed at Amazon (Bengaluru) in Jul 2014
Interview
Fist Round(Online):
20 MCQ questions and 2 Coding Questions .
Coding Questions :
1. Merge overlapping intervals(Very well known repeating problem).
2. Given a singly linked list you have to subtract the value of first node from the last node and so on until you reach the middle node.
Eg: Input: 5 -> 4 -> 3 -> 2 -> 1
Output: 4 -> 2 -> 3 -> 2 -> 1
F2F-1:
1) Given a sorted circular link list and a pointer to random node, now insert a new node. I did it , but i used if and else for some special cases in my code so he asked me to do it without if else for special cases (generic & simple code ).
2) Given a pointer to node in tree and a root pointer. Print all the nodes which are at a distance k from the given node.
F2F-2:
1) He gave me task scheduling problem:
Given a set of modules, some modules depend on previous modules and can only be executed, if the requirements of that module is complete.
2) Given a string of letters from alphabet. Remove all pairs(2 consecutive same character) of characters which occur consecutively.And do it recursively on remaining string.
3) Given a binary tree set the sibling pointers . I told him that i already know the question so he said code it .
4) He asked me about hashing .
4.1 He asked me about complexity . I told him about O(logn) and O(1) .
4.2 Then he asked me about how do you get O(1). I told him my approach . He said how will you rehash it when required . I told him that i will use extra memory and copy the hash map . Then i Optimized and did it in-place using a Boolean field.
4.3 Then he took this question to OS and asked me to do it using threads .
4.4 Asked me what all problems you will need to take care about this problem while using threads and give solution to it.
5) Discussion on my projects
F2F-3:
He gave me 3 coding questions :
1) Given a number n find the number of valid permutations of a string formed using characters ‘(‘ and ‘)’ . A string is valid if it has matching opening and closing parenthesis .
2) Given a singly link list reverse every 3 nodes and if nodes are less than 3 then reverse them also.
3) Given a string of letters from alphabet insert frequency of each character in the string.
Time Complexity Required O(n) Space Complexity Required O(1)
I applied through a recruiter. The process took 4 weeks. I interviewed at Amazon (Seattle, WA) in Aug 2014
Interview
I was recruited via Linkedin and invited to two rounds of phone interviews before being invited to an onsite interview in Seattle. Because I have signed a non-disclosure agreement so I can reveal the actual question. However, both phone interviews last about 90 min each and both have about 30 min to cover your background and career interest, about 10 min for my questions and the rest are technical questions. Technical questions aren't terribly difficult but you do have to brush up your college data structure. The real tricky part is you need to log in to an online whiteboard or you to demonstrate your coding solution. The whiteboard actually has a simplified IDE that can compile most of the common programming language. The interviewer from my second phone interview doesn't care too much about the actual compilation but the one from the first is a bit more particular on that. So if you are expecting just pseudo-coding you might be surprised.
Regarding the on-site interview there are about five different sessions, each last about 50 minutes. All except one are one-on-one, the other have two interviewer. The questions can be divided into three categories 1) projects you have done before 2) behavioral questions and 3) technical questions. For category 1, they might concentrated on a certain project in your resume when going over your previous experience, so picking the right experience to prepare for interviewed will certainly help. There are plenty example online for category 2. For the technical questions, they are more or less the same as the phone interview, except you only need to do pseudo-code. They are mildly challenging and it shouldn't be overly difficult as long as you are reasonably apt at problem solving. The part I dislike the most is one of the interview session is done over lunch, so the interviewer will take me out to lunch and at the same time asking me questions. The Amazon facility in Seattle are right in downtown so my interviewer are juggling between finding the restaurant in the middle of the city, deciding what to eat and interviewing me at the same time. Even worse is a hobo came up to us on the street asking for a quarter for cup of coffee or something like that. So a lot of time the interviewer seemed to be lost in all these and I didn't feel like what I said had actually got through to him at time.
Contrary to other's experience, all my interviewers do give me sufficient time to ask questions and I don't feel I was being rushed. However, it doesn't seem like they have a particular position in mind for me to fill, rather they are trying to see if I can be fit into any of their need, so I don't really have a clear idea what position I am actually apply for and thus it is hard to ask sensible questions
Also they are very responsive throughout the entire interviewing process, most of the time they will get back to me within one day or two between each round.
Interview questions [1]
Question 1
Required to write compile-able code during phone interview; being interviewed over lunch
You have to absolutely make sure that you prepare thoroughly before you do the online assessment, you study up on your fundamentals. All questions are data structure algorithm type questions. I would get one of those prep books for technical interviews. Make sure you are at a secluded place when you take the test. Those are my abominable mistakes. Good Luck!
Interview questions [1]
Question 1
I respect the NDA that I signed. Fundamental coding questions is all I can say.