I applied online. The process took 6 weeks. I interviewed at Amazon (Toronto, ON) in Jun 2014
Interview
I applied online in June 2014, and got a phone call interview with HR person 1. Phone call interview was about data-structures, sorting algorithms, and OOP. I had 2 questions to code on collabedit. Interviewer was nice and he was giving me constant hints.
After a few days, I got a on-site interview email by another HR person 2 to arrange my interview with developers. Before by interview I was asked to do a preparatory call with the HR person 3. I was schedule a time for call with HR person 3. I never got a call at the allocated time slot. Later in the day, I received an email from HR Person 2 that I HR person 3 is unavailable and she will call you another time. I wasn't too impressed with this. I finally got another call from HR person 3 and she didnt seem much interested - she seemed like she wanted to hang up asap.
On-site interview had 4 back to back interviews with developers and managers, 45 mins each. Developers were nice. Managers not so much. Some behavioral questions.
Questions included: Merge two sorted lists, OOP of a website with videos and users uploading videos, Sort two arrays, HashMap run times, Linked List merge. I answered all the questions correctly(or it seemed). Developers and managers didnt give me any feedback or hints when I was working on the questions.
I waited a week to hear back from HR person 3. After a week, I emailed HR person 2, HR person 3 called me firstly apologizing that she wasn't able to get back to me earlier, and later she said that I was not selected, and I should keep applying for another team. I am not sure what that means. Will I even get selected again?
I applied online. The process took 6 days. I interviewed at Amazon in Jun 2014
Interview
1 behavior question
2 write code to get biggest number in a array
3 describe the time complexity of a problem, I said nlogk, but they said that is not the best, best is n
4 how to compare two huge file in two different locations
Interview questions [1]
Question 1
how to compare two huge file in two different locations
Two phone screens. Cleared first one. Didn't move forward after second phone screen. First phone screen was just pure coding excersice. Second phone scree started with talking about resume, current projects, why change blah..blah. Then there were three coding exercises which were quite simple. After that I was thrown a random design question, on which I spent quite a bit of time and as it was open ended, there was no clear answer. Didn't move forward for onsite after second phone screen.
Interview questions [1]
Question 1
// You are on a team that is creating a program to model stress on furniture.
// Your task is to model the behavior of furniture under abuse such as
// excessive weight or application of fire. There exists a prototype that
// defines the following:
class Furniture {
/**
* Furniture becomes unusable if enough weight is applied; the
* algorithm depends on shape of furniture, the strength of material, and
* the location where the weight is applied
*/
void applyWeight(double x, double y, double weight, double seconds);
/**
* Furniture becomes unusable if it is made of wood, and fire is applied
* long enough; wood will change from brown to black if it is burnt
* (whether or not the furniture becomes unusable)
*/
void applyFire(double x, double y, double fireStrength, double seconds);
/**
* possible values: Gray, Brown, Black, etc
*/
Color getColor();
/**
* possible values: OK, UNUSABLE
*/
FurnitureState getState();
}
class WoodChair extends Furniture {...}
class SteelChair extends Furniture {...}
class WoodTable extends Furniture {...}
class SteelTable extends Furniture {...}
class RubbrCouch
// We will need to start adding other furniture like couches, beds, bookcases, and desks, and also new materials such as plastic, cloth, rubber, etc. Try to improve the class design - you are free to modify it however you wish since it is only a prototype.