Currently I am in my final semester. I had applied to Amazon Munich for SDE-I position in Februry and my resume was shortlisted in a week or two. I had got the mail to appear for phone screen interview directly and no OA was conducted.
Phone Screen :
Interviewer was the senior software engineer in the same team which I had applied to.
Interview lasted approximately for 1 hour split into LP (30 min) + DSA (30 min)
LP questions : Deep diving, Missing deadline, Conflict in team etc
DSA question: Intially asked me the best data structure to store the keys to make the search faster and then gave the problem: Given a log of records in increasing order of timestamp of webpages accessed by users, each record of the form "used_id Web_page_name". A transition "X->Y" is defined as when any user moves from a page "X" to a page "Y". You need to find most frequent transition.
I was able to tackle all the LP questions properly and in DSA problems initially I asked few claryifying questions such as size of log record, its type and all, then I explained my approach for the problem and coded it quickly and then simulated my code on some inputs. Then some follow up questions on boundary testing and I figured out all the boundary conditions and gave possible solutions and then he asked me to write unit tests for the same and then some discussion on time and space complexities for the same.
Result: Passed the phone screen. Got the feedback in 2-3 business days.
Final Onsite Interview
Onsite interview was also conducted online. It was consist of 4 rounds conducted on the same day continuously for more than 4 hrs there was a break in one interview otherwise all were one after other.
I will not discuss LP parts in great detail here as it has the same pattern and all the questions are based on LP mention on their website.
Round 1:
The interviewer was a SDM and was from a different team.
Similar to phone screend the interview was equally split in two parts of equal duration.
DSA problem: It was kind of OOPs round. He asked me to design my own hashmap. Intitially he asked me to design the interface of the hashmap mainly what all sort of functions I am going to add in my hashmap, what would be their signature. Then he asked me to implement the hashmap.
I was aple to design the hashmap and was able to implement only few of the functions(add, remove only) as most of the time went on discussion like I was aksing him if he want me to add this function or not, what if I make the behaviour if this function like this or that. Many of the functions which I had proposed he denied to implement like size, containsKey etc.
Round 2:
This time I was giving ointerview to the same person who took my phone screen.
simlar pattern of 1hr interview split in two parts.
DSA problem: Design a lottery system where a customer can buy a lottery ticket ranging from 1 cent to 100 dollars. At the end of sale of all lottery ticket we will have a lucky draw where a winner will be chosen randomly and the chances of winning a customer should be according to the price they have paid for the ticket in other words the one who paid more should have more chances of winning.
I just blundered this interview as initially I was going on the correct path then after some more clarification I started over thinking and did not think much of the solution which I had in my mind and started thinking totally a different one. I was just proposing the vague ideas and the time passed so I could not give a valid approach for this problem. May be I was little nervous otherwise I expect my self to code these type of problems quickly.
Round 3:
This round was taken by the Hiring Manager and only LP was tested for the entire 1hr.
He was asking everything in much much details. Asking different examples for every questions.
I was not expecting the interview to be more on LP rather expecting to be more of problem solving testing. Though I tackled most of the questions propely but there were 2-3 where the examples were not concrete.
Round 4:
This round was conducted by SDM of the same team.
Again the 1 hr interview was split into two parts of equal duration.
DSA problem: This was basically testing how logical and maintainable code the candidate can write. We are given a record of product ids and we need to design a class which will calulate the total price of the orders and apply the discounts if applicable. All the prices of product ids were needed to be fetched from a database say MySQL. Then he asked me to write the unit tests for it.
I was able to design such a class by writing a separate function for each work eg: to fetch price from the database, to sum up the prices, to apply the discount.
After these round were over I realised few mistakes which I had made in these round.