First Phone Interview for Software Development Engineer Position in Amazon.com

About few months ago, one of amazon.com recruiter asking my CV through Linkedin and invite me for the recruitment that would be conducted in Singapore. The position is for Software Development Engineer that will be based in Seattle, US. With full of interest I decided to sent the CV and answer several question she asked. Unfortunately only few days before recruitment date, she informed me again that cannot proceed me further. At that time they can only proceed Singaporean or Australian citizen because US visa quota limit consideration for other citizenship including me as Indonesian (H-1B visa if I am not mistake). But she promised that in the beginning of 2013 (when visa limit quota will be reset) there will be another recruitment process.

Her promise is right. Just about 2 weeks ago another amazon recruiter contact me and offering one phone interview schedule for AWS Software Development Engineer position. With full enthusiasm I send her my available date and time. I also do some of researches for the preparation. According to the information I have gathered from internet, amazon.com interview will be very technical and involve writing code. Until job offer, candidate have to pass up to 3 phone interview and whole day onsite interview.  I read many books about coding interview, other books about algorithm and some books about cloud computing. I also practiced a lot solving some coding problems.

Finally the interview has been conducted this Saturday morning 6.00 AM GMT+8 (Friday 2.00PM Seattle time). The interview who called me is very nice. He speak very clearly and we discussed a lot while I try to solve some coding problem. At the beginning he introduce himself then start asked some of my background, my project, what I did, etc. Next he asked some basic question about java keyword. Then finally we arrived at the coding challenge.

The first problem is: "Given binary search tree, write a method that will return the next node from given node!". Actually I have been anticipating such questions. But since I have to write in interview nuance, it make me little bit nervous and under pressure. I wrote the code in one online coding collaboration website, so both of us can see what I have written in real-time  After struggling some minutes finally I can finish the solution. I am not sure whether he satisfied or not.

The second problem he just asked me to get element with second most highest occurrences from and array of object.

example:
someArrays = {"xx", "yy", "xx", "yy", "zz", "xx"}
xx shown up 3 times
yy shown up 2 times <-- this is the second most occurances
zz shown up 1 times

Actually this is also not should be too difficult. First, iterate onel time the array and push every object occurrences into a hashtable. Second, iterate hashtable and return the second most occured. But I was struggling how to get the key of most occurred object. I will write the solution in here, later.

Last, finally he asked me if I have any question. I just asked about what he do in Amazon. I also asked how many person inside one team. In conclusion I feel not satisfied with my interview. I supposed to perform better. But I should not be regret. I can use this experience as a trigger to learn more so can be more prepared if face same experience again. Not sure whether I can have next interview or not, but it is enjoying experience.