Amazon SDE-1 Interview Experience

Scroll

Making it there!

The selection process of Amazon Student Program is pretty straightforward. The first round is an Online Assessment(OA) which is conducted for shortlisting the candidates for the interview. These shortlisted candidates later undergo three more virtual interview rounds before final selection. All interview rounds were conducted on Amazon Chime and Amazon LiveCode Sessions for coding.

Round 1: AMCAT ONLINE ASSESSMENT(OA)


38 students were shortlisted from this Online Assessment.

Round 2: Coding Round 1 (1 hour 45 minutes)


This round primarily focused on testing an individual's coding abilities and problem solving skills. It was conducted by an AWS Workforce Analyst in my case. He asked me two coding questions. He made it very clear at the beginning itself that there will be discussion on complexity and reason of selecting approach I will use to solve the question. The interviewer also added that he wanted me to consider all the edge(corner) cases on my own and that he expects a production level code.

  1. Given a binary matrix, find maximum area of square submatrix with all 1s. I told him my approach to solve this question using dynamic programming. He asked me to write the code for my approach. Later he asked me to optimize the code. He asked me to perform all operations in one nested loop. We also had an elaborate discussion on time and space complexity of my solution.
  2. Given an array A of length n containing digits only in the range 0-9(both inclusive). The interviewer asked me to find minimum number of moves required to go to the last element of this array where the starting position is first element of the array. A move for this problem can be made by following three rules:
    1. You can move from any index i to i+1.
    2. You can move from any index i to i-1.
    3. You can move from an index i to j only if A[i] is equal to A[j].
    I initially told him a naive approach which explored the entire search space and he was not satisified. Later, I came up with a BFS search based approach using queue maintaining a visited array of length 10(as the array elements are in the range [0-9]). I had already spent a lot of time in coming up with this approach, so when he asked me to start coding I had 10 minutes left. He asked me to skip the input-asking part of the code and directly code the function. I did that and then he asked me complexity of the code. At last, he told me to think about more edge testcases which I probably missed in my code and the interview ended.
  3. NOTE: They share a live code session link where both the interviewer and interviewee can concurrently do their edits.

Round 3: Coding Round 2 (1 hour 45 minutes)


This round was based on problem solving and algorithm designing. In this round I was interviewed by a 4 year experienced SDE-2 at Amazon.The interview started off with my introduction. The interviewer asked me 2 coding questions.

  1. Design an efficient data structure that performs the following 6 operations efficiently: 1)findMin() 2)findmax() 3)deleteMin() 4)deleteMax() 5)insert() 6) delete() I told him my approach using Doubly Linked List and BSTs. He asked me complexities for all operations in both cases and continuously asked me if it can be optimised further. I answered all of his questions satisfactorily. I was not asked to code this one.
  2. Consider yourself as a mediator between two friends. Given n coins each having different values, you have to divide these coins among two friends in such a fashion that the difference between the sum of coins offered to these 2 friends is as minimum as possible.I told my solution using dynamic programming approach and then he asked me to code it and also asked me the complexity of my approach.

Round 4: HR Round (1 hour 20 minutes)


This round was conducted by an experienced Product Manager at Amazon. He started off with some informal discussion and later asked me to introduce myself. He asked me to comprehensively elaborate one of my projects. I discussed my Final Year Project on Road Damage Detection and Classification. This round focused on situational based questions like:

  • Tell me about a time when you did something which was not in your plan/MO?
  • Tell me a software development project scenario where more time is devoted to development and maintainance is not much required and vice versa.
  • What challenges you faced in your project and how you overcame them?
  • Time when you innovated and exceeded the expectations?
He also asked me one coding question. Given an incoming input stream of characters, I have to store the frqequency of all characters in the stream encountered till now. An elaborate discussion was done around this question.

Final Verdict: Selected :)


TIPS FROM MY END:

  1. Keep trying to solve the problem, they will definitely give you hints wherever you stuck and you can capitalize on those hints to solve the problems.
  2. Be honest with the interviewer. Don't fake anything. Keep it authentic!
  3. Keep the sessions interactive. Keep discussing your approach with them. Clarify doubts, have suggestions!
  4. Try to conside all edge cases before committing your final answer. Use meaningful variable names in the code.
  5. Go through interview experiences on geeksforgeeks.
Good Luck!

Previous Post Homepage Next Post Citi'20 Summer Intern Experience

Leave a comment