Amazon.com Software Design Engineer Interview Questions & Reviews
Getting an Interview
- Popular Job Titles:
- Software Engineer (696)
- Software Development Engineer (611)
- Software Development Engineer Intern (192)
- Area Manager (140)
- Software Developer (130)
- Senior Product Manager (98)
- Intern (85)
- Senior Software Engineer (76)
- Software Engineer Intern (75)
- Software Development Engineer I (75)
- Operations Manager (68)
- Product Manager (60)
- Technical Program Manager (56)
- Software Development Manager (54)
- Software Development Engineer II (53)
- Software Development Engineer In Test (45)
- Warehouse Associate (43)
- Program Manager (40)
- Financial Analyst (38)
- Senior Financial Analyst (35)
- Software Developer Intern (32)
- Business Analyst (29)
- Support Engineer (27)
- Senior Vendor Manager (26)
- Brand Specialist (25)
- Vendor Manager (25)
- Engineering (23)
- Financial Analyst Intern (22)
- Project Manager (20)
- Technical Project Manager (20)
Software Design Engineer In Test Interview (Positive Experience; Difficult Interview)
I applied through an employee referral and the process took 3+ weeks - interviewed at Amazon.com.
Interview Details – 2 phone screens were straightforward - general resume-related questions followed by medium difficulty coding+testing questions and design questions. Interview scheduling was prompt. On-site interview was a long and weary one, but interesting nonetheless. Interviewers were very courteous.
Software Design Engineer Interview (Negative Experience; Average Interview)
The process took 3 months - interviewed at Amazon.com in October 2011.
Interview Details – Typical Amazon - in my experience. Got contacted by recruiter. I replied, no response. Someone else contacted again after a few days for the same position. Setup phone screen. Aced it. Setup second phone screen. NO ONE CALLS. It happened to me second time. I was interviewing with Amazon in 2010, and the same thing happened. At the time, no one even bothered to follow up. I emailed the recruiter, she did not even reply!!!
This time, the recruiting coordinator was much better and apologized for the bad experience. So I agreed for a second phone screen. Again aced it. They wanted me to come onsite. I was not sure I wanted to work for Amazon. I accepted interview offer anyway and went onsite hesitantly.
Onsite, the recruiter is a no show. I was asked to come for interview starting at 10:30. So I arrive at 10:10 and let the receptionist know. I waited, and waited until 10:45 and receptionist says she is not able to reach the person. Finally, at 10:50, the same recruiting coordinator shows up and apologizes for the recruiter's behalf and says she is stuck in traffic (poor fellow, he has to lie).
Next is a Software Engineer, he struggled to describe the problem and eventually got it right after searching for it on the internet. I partially solved the problem and time was up.
Hiring manager was the biggest joker I have seen so far. He says why am I interested in a position that requires front-end work when all my experience is in backend. Well, first of all HE contacted me for this role. Second of all, it is not a front-end only role (and backed heavy). Third, there are other people who do front-end work already on his team. During the 45 minute "lunch + interview" we spend 25 minutes to pickup lunch, and he wants me to now solve some vague problem (in remaining 5 minutes) that he could not even describe in 15 minutes. He allows me no time to ask him question. Was he afraid of me asking questions?!?!
Now, it gets better though. The product manager and two other SE ask good questions and allows me time to ask questions. The second last interviewer is a no-show. Yes, onsite interview, and no one shows up at the scheduled time. So the previous interviewer looks him up in company directory and calls his office number. And the no-show guy gives a poor excuse that he has to come from another building and he is running late. ?!?!?! What sort of an impression you are putting in front of the candidate? He finally arrives 25 minutes late on a 45 minute interview. Takes one full hour (instead of scheduled 45 minutes), and makes the last interviewer wait for a cool 40 minute. A complete lack of courtesy and professionalism. He did not even apologize for being late. He himself did not understand the question he was asking, and I had to correct his question by asking several counter-questions. The last interviewer takes his regularly scheduled 45 minutes (apologizes on behalf of the late interviewer).
- Board game of life Answer Question
- How to collect orphaned memory nodes in garbage collection Answer Question
- Find right-most zero in 0-1 node where in a given row, if 1 appears, all values right of it are 1. Answer Question
- Design counters system for online services. View Answer
Reason for Declining – The hiring manager was a joke. Amazon seem to be consistent in no-show on interviews. From what I read, it has happened to other people also. IF this happens on interview, I am sure there is a rampant "drop the ball" culture at Amazon. I am too punctual and sincere for my career to risk it at Amazon. With its razor thin margins, and over-inflated stock (may I call it a bubble), I think it waiting to bust sooner rather than later.
Also when I asked multiple employees on what they are most happy about working at Amazon, the canned and learned answer came as "People". It seems this is one of the Amazon's weekness and they are hiding it by training interviewers to give this canned answer.
Software Design Engineer In Test Interview (Positive Experience; Average Interview)
I applied through other source and the process took 7+ weeks - interviewed at Amazon.com in August 2011.
Interview Details – I posted a resume online, and received an email from Amazon HR a few days later. HR was excellent--professional, courteous, and responsive. They set up an initial phone interview with a test manager. This was about an hour long, and used collabedit.com to share a whiteboard online.
I thought it went okay, then was contacted a week later to set up a second phone interview, this time with the hiring manager. Quite similar, but no collabedit.com this time, we discussed some code and he gave me a few minutes to write it, then I read it to him over the phone. Some more questions about testing scenarios, and that was it.
A few days later HR scheduled an on-site day of interviewing. This was in Seattle (they cover expenses required to attend the interview). I met with 5 technical interviewers, plus a follow-up with a rep from HR. Since my interview crossed the noon hour, Amazon paid for that interviewer to take me to lunch.
First interviewer described the team (Kindle) and what it was resposible for. I had prepared in anticipation of doing device-level testing, i.e., hardware validation, OS components, etc. Actually that is all accomplished in California, and the Seattle Kindle team is more traditional Amazon, in that they busy themselves with delivering online content (web ordering, e-book delivery, various web services issues). There was also a lot of discussion about how I might allocate my time between competing projects/interests, which I believe was a prompt to display that I thought that
Second interviewer concentrated on testing issues, such as what is TDD, unit tests vs. integration tests, more high-level issues.
Third interviewer was a developer from the Kindle team. We discussed how to approach testing the Kindle content delivery system, based on a block diagram of how it worked ("how would you test this module? How about this one?...).
Fourth interviewer talked about general high-level design issues with web servers and services, how different designs contribute to latency and throughput. Note to self, look up 'orthogonal', as in "Are latency and throughput orthogonal?" (The correct answer is "Yes!").
Fifth interviewer was the first to present a coding problem, namely how to design a system that returns a list of names based on a user entering 'letters' by pressing numbers on a phone (i.e., the first 3 letters of the name Smith would be represented by typing "7-6-4"). I didn't perform well on the coding problem. We were rushed, and the interviewer kept trying to be helpful and get things moving with hints and questions, but they just got me frazzled and self-doubting.
HR finished the day and walked me out.
Everyone was really, really nice. I was completely impressed by Amazon and will reapply in the future. After several years of working at Microsoft it is apparent that they have less internal friction at Amazon. I thought the interview process was quite fair, in fact most of it (before I tubed the coding question) was surprisingly easy and low-key.
Advice: no matter what engineering position you seek, think:
1. data-driven decision making
2. complexity ("Big-O notation")
3. network issues (latency, throughput, scalability)
- given a sorted list of integers, how would you find whether 2 integers exist that add up to a given sum? View Answers (2)
- code up a system that will accept a series of telephone keypresses and return a list of possible names from a supporting data structure. Describe both the data structure and the insert and search methods. Answer Question
Senior Software Design Engineer Interview (Neutral Experience; Average Interview)
I applied through a recruiter and the process took 4+ weeks - interviewed at Amazon.com in January 2011.
Interview Details – I was contacted by an internal HR Recruiter in December 2010. Since I was on vacation we decided to wait to conduct the phone screen in January.
The phone screen was conducted by an Indian gentleman that had a difficult time with the English language so needless to say the phone screen was a bit difficult to get through. (note: I work with many great people from all nationalities including Eastern Indians. I believe that the interviewer that conducts a phone screen should be able to enunciate and articulate the phone screen clearly).
Questions were pretty straight forward:
1) Reverse a sentence, such that the words are still in the correct ordering.
The sly brown fox -> fox brown sly The (Reverse sentence in place, then reverse words in place)
2) Design a file system. (This one was really difficult to understand what he was talking about, more because his English was difficult to decipher). But I think we got through it in the end.
3) Design a data structure that would have O(1) lookup but was always sorted.
During my investigation of Amazon, I noticed many of the current employees complain of work/life balance and the abundance of micro management. I asked the interviewer about his work/life balance and his answer raised my warning levels a bit more.
"Its not that I work a lot, but I am so intrigued by the products that we are working on that its difficult to pull away when the work day is done."
I wonder if his boss was in the office when he said this.
Nearly a week has passed since the first phone screen and I consider the lack of any kind of acknowledgement semi-unprofessional. They could say at least "Thanks...we will got over your interview feedback and get back to you", or just say whether or not they are moving forward.
I had a chance to talk to a couple of past and currently employees at Amazon and they echoed the same sentiment. That the work/life balance is non-ideal but since the stock continues to rise that employess are able to look past it for now. I wonder what happens if/when the stock drops?
Either way, I think I will pass for now. The company seems fine, the salary seems very competitive but it just doesn't sound worth the hassle.
Software Design Engineer Interview (Positive Experience; Difficult Interview)
I applied through college or university and the process took 3 days - interviewed at Amazon.com in October 2010.
Interview Details – I was contacted by email after visiting the Amazon booth at my university's Career Fair, and a recruiter set up an on-campus interview.
My first interviewer was very chill, but was almost plodding in his need for detail. Another peculiar technique was to ask for a solution, and when I gave him one, ask for another and another and another and another, until I was giving less and less efficient solutions. He wanted me to admit that some of the naive solutions would be faster to implement than my initial optimal solutions, and therefore valuable when you want to get a feature out there immediately and scale it up later. Then, he had me code on a piece of paper, and was very picky about syntax. I received a phone call from him about an hour later, congratulating me and setting up three more on-campus interviews for two days later.
My second interviewer was also pretty chill. He started out by enthusiastically describing the challenges of optimal shipping. He had me code up a couple problems on the white board, and seemed surprised by my use of bitwise operators.
My third interviewer was the most senior. He had me design a chess game, and implement several of the key classes and methods. He also asked me some behavior questions relating to my past experiences with group coding projects.
My final interviewer had to have been the bar-raiser. He was a short dude with a very intense stare. As soon as I walked over to his cubicle, he informed me that he "had been listening to [my] last interview through the wall". I was kind of weirded out, but relieved that I hadn't screwed up the last one. The final interviewer asked me some more behavioral questions, and had me code up a LRU cache. I hadn't done that problem before, so it was fun working up to the optimal solution.
A week later, I got an email congratulating me and asking to set up a phone call to discuss the offer. They also invited me to Amazon headquarters to stay for three nights, meet all the teams, and hang out in Seattle for the weekend. I haven't decided whether to accept the offer, but I am looking forward to the visit!
- Given an array of 100 integers where every integer from 1-101 occurs once, except for one. Find the missing integer. View Answers (2)
- Reverse the order of words in a string. View Answer
- Implement a queue using stacks. Answer Question
- Design a game of chess. Answer Question
- Implement a LRU cache. Answer Question
Reason for Declining – I have several appealing offers and I've never been to Seattle or Amazon headquarters, so I don't want to make a decision until Amazon flies me out to headquarters.
Software Design Engineer In Test Interview (Positive Experience; Average Interview)
I applied online and the process took 4+ weeks - interviewed at Amazon.com in January 2009.
Interview Details – I applied online for a position I was very interested in. Had two phone screens and a full day of interviews (5 people). I had already accepted an offer with another company when they extended an offer. I spoke with the hiring manager in a follow-up meeting and was very excited by the project I'd be assigned to. This tipped the scales and I accepted the offer.
- Design a system for a parking lot Answer Question
- Write a function to find the node where two linked lists meet. View Answers (3)
Negotiation Details – Having a second offer in place helps dramatically.
Senior Software Design Engineer Interview (Negative Experience; Difficult Interview)
I applied through other source and the process took 2 weeks - interviewed at Amazon.com in April 2010.
Interview Details – I posted my resume on Monster.com and one of the recruiters contacted me for a Senior Software Design Engineering position. I've been working in software design industry for a few years and I had prior college internship experience as well. I didn't need the job, but I thought it would be interesting to interview. My skillset is primarily front end web technologies and Java. I proceeded to glassdoor.com to discover what the interview process. After reading numerous postings, I saw that Amazon.com works you like a dog and its just not a fun experience, so I had my doubts going into the interview. Reading online, I discovered that Amazon.com has some of the hardest interviews in the world. So I coded up answers to some of the questions to give myself a refresher in algorithms and the skillset they are looking for.
The second interview was given by someone who clearly had no interest in my joining the company. I think his involvement was more along the lines of his manager saying 'Hey, go interview this guy and see if we want to bring him in' and the employee groaning all the way to the phone. I could hear him typing the responses into a computer after he asked me questions verbatim from his computer screen. He asked questions like 'Why did you contact Amazon.com about this position?' when they clearly contacted me. This guy had no clue.
This interview was completely technical. As I proceeded to answer questions about binary search trees and maps, the interviewer would ask me the run time performance of the algorithms I presented him. Not only was this something I don't do on a daily basis, its something you spend lots of time on in the field tweaking for good performance. He also asked some other questions about palindrome reversal and finding a 3 page sequence for a particular user by parsing a log file. Overall, I was able to answer about 60% of the questions he asked and the others I had good idea how to answer but when pressed for time I couldn't come up with them. This interview lasted 40 mins.
A few days later, I was informed Amazon.com was looking to pursue other candidates of the position.
The second interview is a clear indication that Amazon.com just wants code junkies and they are not looking for the overall person. In my organization, I'm one of the most valued software engineers.
Do not waste your time interviewing, there are better companies.
- C++ has the concept of multiple inheritance. Java does not have this concept, how can multiple inheritance be implemented in java? Answer Question
- Given a text log of HTTP requests on a particular server, each line has a username and the name of the page the user visited. The pages requests aren't in order and multiple requests from different users are logged in this file non sequentially. Find the most common 3 page sequence for each user. Answer Question
- Given a base 2 integer, give me an algorithm for detecting if it is a palindrome. What is the run time performance of this? View Answer
- How do you find the least common ancestor of two nodes in a binary search tree? What is the runtime performance of this? Answer Question
- What is the same origin policy? Answer Question
Software Design Engineer Interview (Positive Experience; Average Interview)
I applied through an employee referral and the process took 3 days - interviewed at Amazon.com in April 2007.
Interview Details – Note, this interview process was for a summer internship. The process began with a phone conversation with an HR person. The conversation consisted of gauging my interest in various groups that I could work with at amazon.
Later, I went through the first technical phone interview. This lasted about 45 minutes. I was first asked to list which programming languages I had used and how strong I was in each. I was then asked some java specific questions: What is the purpose of the static keyword? What is the difference between a String and a StringBuffer? Then, some object oriented design questions. Then some simple algorithmic questions: Find a common ancestor in a binary tree, find first non-repeated character in a string. All of these questions were answered verbally and the interviewer was satisfied with a general solution.
The second technical phone interview lasted about an hour. It began with some discussion of my resume. I was asked questions related to:
General operating system details:
- Difference between process and thread
- What does it mean for a method to be threadsafe
- Know what a stack crash is? -> what happens during a function call, how can this be exploited
- Find unique words in text files
- Cell phone, phone book, data structure for storing numbers, so that you could type first letter and see what names it matched -> essentially looking for a prefix tree
- Have you used makefiles before -> was going to go into a tree description of that
- How would you output a tree by level
- How could you tell if a byte only contained a 1 in the leftmost bit
- How could you count the number of ones in a byte
- Email sender, need to send 100,000000 emails and you have 5 machines how could you do it efficiently
These first two interviews felt pretty relaxed. When describing the solution to a problem I would give a quick sketch, saying something like "I would hash a count of each letter" and at this point the interviewer would acknowledge that I was on the right track and just move onto another question without digging for details.
In the third technical phone interview consisted of a single programming task. I was asked to code up the solution to a simple problem and email it to the interviewer. This took about 30 minutes, I then described what the code was doing to the interviewer. I did not find the programming question hard, and this last interview felt like more of a formality. At no point did I feel like I had the burden of convincing the interviewer that I was the right candidate.
Worth noting, is that I had previously done an internship with Amazon, and this may have influenced how the interviewers were behaving toward me.
- Began by asking if I knew what a stack crash is. Then asked what happens during a function call, and how can this be exploited. View Answer
- Design an email sender that can send 100,000,000 emails. You have 5 machines how could you do it efficiently. View Answers (3)
- Given a string find the first non-repeated character. View Answers (8)
- Binary tree with parent pointers, given two nodes find common ancestor. View Answers (3)
- Given two linked lists A and B, return a new linked list C, where C consists of all elements in A or B that are contained in only A or only B. View Answers (2)
Software Design Engineer In Test Interview (Neutral Experience; Difficult Interview)
I interviewed at Amazon.com in June 2013.
Interview Details – Called for a direct interview at the Hyderabad office.
Round 1: Pure programming skills - Write programs for random arrays and binary trees.
Round 2: Testing and Logic - Brain teasers, Questions on Testing and Test Automation tools
Interview Question – Find the max subsequent sum for a random array of numbers View Answers (2)
Senior Software Design Engineer Interview (Positive Experience; Easy Interview)
The process took 2 weeks - interviewed at Amazon.com in January 2011.
Interview Details – 2 telephonic interviews followed by 6 on-site interviews. Phone interview were cultural fit and technical questions where as onsite was mostly cultural fit.
Negotiation Details – waiting for offer.
Interviews for Top Jobs at Amazon.com