Status: New Grad, B.A. Top 10 CS School
Position: SDE1 at Amazon
Location: Seattle, Washington, USA
Date: February 21, 2020
OA 1: Debugging Round [20 min]
7 code snippets in C, C++ or Java which have some logical and/or syntactical errors that need to be fixed to get the correct output. These errors could be incrementing the wrong variable in a loop or code enclosed in the wrong loop. I was able to debug 6/7 questions because time ran out while I was panicking on the last one.
OA 2: Technical Round [70 min]
2 coding questions (selected preferred programming language) from the Amazon Online Assessment Questions post. I solved the first question (LeetCode easy) in python and the second (similar to Critical Connections in a Network in java. I somehow got both to pass all test cases.
OA 3: Work Simulation [~2.5 hr]
More behavioral-type questions regarding various workplace scenarios. I followed the Leadership Principles laid out by Amazon. For me, I tried to use common sense when it came to dealing with conflict scenarios; de-escalation. Otherwise, I prioritized the users and product over everything else when I was forced to choose something.
My Amazon recruiter reached out with a survey filled with 3-hour time slots for the final interviews that will happen virtually using Amazon Chime. There were ultimately 3 rounds of interviews (45 min each with 15 min breaks in between). In every round, I was asked one behavioral question and one technical question. I felt as if I was coding in a plaintext editor or Google Docs, despite being told to "select" my preferred programming language (Python).
Round 1:
I was not able to see the interviewer's video for some reason. He introduced himself and talked a little about his background and current role at Amazon. Afterward, he asked me to tell him about
The technical question was very similar to Binary Tree Right Side View with more requirements. The interviewer did not seem to be too familiar with Python, the language I selected to code in, setting up the problem in Java. Overall, the specific syntax or language didn't matter since they go through your code as if it was run through test cases and pointed out cases where it would fail. The interface did not allow code to run nor were there specific test cases listed out like those in LeetCode. The interviewer was more interested in my approach and that I had explained clearly every step of my approach. I was a bit nervous and ended up mixing two different implementations (recursive and iterative), and I ran out of time before coming up with a working solution.
Round 2:
My 2nd interviewer was a project manager, who did have a working webcam. She asked me to tell her about
The technical portion started with my interviewer making sure that I understood what iterators were. Given n iterators that each returned the smallest or minimum value, she asked me to implement the next() and hasNext() for an iterator that will return the "next" smallest value from the three iterators. I had issues with this one because of the way the question was phrased since I thought I could just call next() for each iterator and find the min(). Of course, that would have been too easy. For the value(s) that were not the next minimum value, I had to keep in some sort of cache and call next() on the corresponding iterator to the minimum value that I had extracted. I ran out of time again this round. She asked me the space complexity for my implementation, which I had misheard as "time" complexity.
Round 3:
My third interviewer was an SDE on the Alexa team, activating Alexa in the background every time he mentioned Alexa the product, team, etc. He did not have a working webcam and poor audio quality (with echos). For me, his accent was extremely heavy, so I had a difficult time understanding anything he said. After having him repeat his question multiple times, I believe he asked me about
The technical portion seemed like a system design question. I was told to compose a function or method that could check whether a password is valid given a set of conditions: at least 8 characters, includes uppercase and lowercase letters, and at least one special character. As I completed the function, I was asked to include another condition and another and another. Then he essentially asked me how I would change the function so that future SDEs would not have to write another function (because that's just pushing the problem to someone else) or change the current function to meet future requirements. With mere seconds left, I settled on inputting a pair (built-in function, integer specifying requirements).