Careers
Companies
Topics
Get Started
Interview Coach 1:1
Gain the confidence you need by asking our professionals any interview scenario, question, or answer you are unsure about.
Let Us Review Your Answers
Our interviewing professionals will gladly review and revise any answer you send us. Allowing you to craft perfect responses for your next job interview.
Interview Questions by Topic
Interview Questions by Career
Interview Questions by Company

Amazon Software Engineer
Interview Questions

26 Questions and Answers by
| William Swansen is an author, job search strategist and career advisor who assists individuals from all over the world.

Question 1 of 26

Walk me through your process for designing scalable applications.

1000s of Interview Questions

Win your next job by practicing from our question bank. We have thousands of questions and answers created by interview experts.

Software Engineer Interview Questions

  1. 1.

    Walk me through your process for designing scalable applications.

      A Amazon interviewer will ask this type of question to understand how you go about doing your job. When asked to walk somebody through the process you use, you should divide it into several distinct steps and briefly describe each one. Be careful not to talk too much or over complicate your answer. If the interviewer needs more details, they will request them.

      William's Answer

      "The process I use for designing scalable applications begins with minimizing the code I use. I focus on the application's functional and non-functional requirements and then create code that satisfies those. I break the application down into distinct processes and code each one sequentially. The final step is to test the application and debug it."

  2. 2.

    What do you feel are the critical principles of good software engineering?

      This is a general question that asks you to characterize what makes a software program efficient and effective. Your ability to do this will help the interviewer at Amazon understand your qualifications for the position. Your answer should incorporate both the requirements for the job, as stated in the job description, and your previous experience writing code. You should limit your answer to two or three important principles and anticipate a follow-up question from the interviewer.

      William's Answer

      "There are several critical principles I try to incorporate in any code I write. These include simplicity, standardization, and ease of understanding. By doing this, I ensure that the code is effective and easy to understand and update, if necessary. I also document my code so that other programmers can comprehend it and modify it if required to do so. Are these the same practices you employ here at Amazon?"

  3. 3.

    How would you accelerate the response time of a website you created for us here at Amazon?

      When conducting an interview, hiring managers like the ones at Amazon are interested in one of three things - how you can help their organization make money, save money, or save time. The questions they ask will be specific to these objectives. You can prepare for the interview by understanding the organization's mission, the role of the job you are interviewing for, and how you can help them achieve one of these three objectives. In this case, the interviewer is seeking to understand how you can save time.

      William's Answer

      "There are several ways you can accelerate the response time of a website. These include using adaptive images, employing a cache, minimizing the number of plugins you use, compressing the content, and enabling HTTP to keep-alive response headers. The methods I use depend on the specific application and how the users interact with it."

  4. 4.

    What process do you use to test and find bugs in an application you've developed?

      The Amazon interviewer will likely ask a series of questions regarding your process because they seek to understand the steps you generally take in scenarios such as this one. As an experienced software engineer, you should be able to easily describe the procedures you use to test and debug the application you develop. Since this is an operational question, your answer should be direct and to the point. You should anticipate additional follow-up questions.

      William's Answer

      "Since I typically use the agile or waterfall development processes, just as you do here at Amazon, I test my application at various stages during the development process. This allows me to correct errors before they have greater implications later in the process. I use a variety of tools to test and debug the software. I also ask my peers to review my work during the development stage. Once the application is completed, I send it to the quality assurance team for final testing and debugging."

  5. 5.

    How do you go about organizing CSS files, and why do you prefer this approach?

      This is an example of an operational question that has technical aspects to it. The interviewer is interested in learning more about how you go about doing your job related to this specific topic. No two interviewers are the same, so the questions you will be asked may vary from interview to interview. The best way to prepare for this is to research the company, review your resume, and spend some time reviewing the operations you perform and the technologies with which you work.

      William's Answer

      "The method I use to organize my CSS files is based on the file's style type. Categories I use include reset, layouts, list, carousel, tables, and several others. This enables me to quickly locate the specific style I'm looking to incorporate into the front end of my program."

  6. 6.

    If hired by Amazon, can you estimate what portion of your day will involve coding and other activities you will perform when not coding?

      This operational question is seeking to understand how you go about doing your job on a day-to-day basis. Operational questions will ask you about the processes you use to accomplish the tasks required by this position. The best way to answer operational questions is directly and briefly. The Amazon interviewer will ask you a follow-up question if they need more information or want to explore the topic in more detail.

      William's Answer

      "During a normal day, I spend about 60% of my time writing code. The remainder of the day is spent reviewing my work, meeting with my manager, collaborating with other coders on my team, and learning new coding technologies and methodologies."

  7. 7.

    Amazon is very proud of our products and the people who develop them. In your opinion, what distinguishes a great software engineer from an average one?

      When an interviewer asks this type of question, they seek to understand what your perception of excellence in this role is. When answering the question, you should align your response with the job requirements, as defined in the job posting. You can also incorporate your past performance to demonstrate that you are aware of what excellence is and strive to achieve it.

      William's Answer

      "I believe the trait which distinguishes a great software engineer from an average one is being able to balance excellence and performance. While I strive to write perfect code, I recognize that the project has a deadline and needs to be accomplished on time and under budget. If I have to compromise the quality of my code, it is done in such a way that it will not impact the final performance of the product."

  8. 8.

    What do you look for or check when reviewing another team member's code?

      This is a hybrid question, which has elements of both operational and technical questions. Since both operational and technical questions are responded to directly and succinctly, your answer will be the same. This question's broad nature also indicates that the interviewer will likely ask a follow-up question regardless of how you respond to their original question.

      William's Answer

      "When I'm asked to review another team member's code, the first thing I look for is to make sure that the code is efficient and follows our organization's guidelines. I'm careful not to personalize my review or make recommendations on how they could improve the code based on my personal preferences and coding style. I also strive to impart new knowledge to the coder when I make suggestions. An example of this would be showing them a more efficient way to accomplish the task, which they may not have considered."

  9. 9.

    Describe the process you use to create a program, from requirements definition to delivery.

      When the interviewer asks you to describe a process, they are seeking to understand how you go about doing your job. When preparing for these types of questions, you should review the job description to fully understand the position's requirements and how the organization will expect you to do your job. You should also review the processes you currently use to ensure they align with this role's requirements. Your answer should describe each step of the process in a sequential manner. Make sure to keep your response simple and to the point.

      William's Answer

      "The process I use to create a program begins with gaining a thorough understanding of the requirements for the application. Once I understand these, I create a flow diagram for how I believe the application should work. I then create code for each operation within the application. I submit the final program to the quality control team, which reviews and debugs the program. The final step is to get sign off from the users. Throughout the process, I document my work so that it can be replicated or updated, if needed."

  10. 10.

    How do you go about addressing errors in your code?

      Nobody is perfect, even the highly-skilled software engineers Amazon hires. Every software engineer has errors in the code they create. Denying this will be a red flag, which will make the interviewer skeptical of your qualifications. A better approach to answering this question is to acknowledge that you make errors, and you have a process you use to identify and correct them.

      William's Answer

      "After I create a segment of code, I take several steps to identify any errors and debug them. These include wrapping the code, using try/catch statements, and using various debugging tools. Once the entire program has been completed, I ask either my peers or the quality control team to review the code and identify any errors I may have missed."

  11. 11.

    Can you describe Amazon's software development life cycle as you understand it?

      This is an example of a hybrid operational and technical question. It asks you to define a concept relative to this profession and describe how you go about doing this job. When answering these types of questions, you should be direct and to the point. The Amazon interviewer is likely to ask several follow-up questions to explore this topic in more detail. Your answer should also be aligned with the requirements for this job, as defined in the job posting.

      William's Answer

      "The software development life cycle, or SDLC, is a process that most developers follow to create an application or program. The individual steps I understand Amazon uses include defining the requirements, planning the development, creating the code, testing it, and deploying the application. Specific methodologies used to accomplish this include the waterfall or spiral models, or the Agile framework. Is this accurate?"

  12. 12.

    Here at Amazon, we have embraced Agile methodology. How experienced are you with the Agile software development process?

      This question is asking about your familiarity with a specific process used in software development. It may be a follow-up question to a previous answer you provided the interviewer. When asked this type of question, you should first define the concept or topic and then explain how it is used in your job. This will demonstrate your knowledge of the subject and your experience employing it in the work you do.

      William's Answer

      "I am very experienced with the Agile software development process. As you know, it is a methodology used when creating a program. Its central concept is iterative development. This involves collaboration between the software development team and the members of the organization who will be using the application. The benefit of this is that it allows for identifying and correcting issues at each stage of the process rather than after all the work is completed."

  13. 13.

    Please describe responsive design and the difference between fixed and fluid layouts.

      You should immediately recognize this is a technical question. Technical questions ask you to define a term or concept and then discuss how it is used in your work. When responding to this question, you should be brief and to the point. The interviewer at Amazon will request additional information if they need it. You should also provide an example if possible to further demonstrate your knowledge of the subject.

      William's Answer

      "Responsive design refers to the process of creating web content that is formatted according to the device you are using to browse the site. It uses media queries to address breakpoints and scale images, wrap text, and adjust the layout so the website is presented consistently across different devices. Compatible devices include computers, tablets, and mobile phones. Response designs utilize the fluid website design process. This differs from a fixed design in that it uses percentages versus fixed pixel widths."

  14. 14.

    What are the differences between an array and a stack?

      This technical question is asking you to compare two concepts used in the role of an Amazon software engineer. When comparing two concepts, you should first define each of them and then discuss how they differ. It may be helpful if you provide examples of how the concepts are used and the work you do to demonstrate your understanding of the subject matter.

      William's Answer

      "A stack is a data structure that utilizes the last in, first out principle for presenting data to the application. On the other hand, an array doesn't have a fixed structure for how data is added or retrieved by the application. A stack may be used in an application that requires the most recent data to be presented first. An array can be used to retrieve any of the data, regardless of when it was added to the application."

  15. 15.

    Please describe a stack and the two operations it performs.

      When the Amazon interviewer asks you to describe something, you should immediately identify the question as being technical. When responding to a technical question, you first define the term or concept and then describe how it is used in the work you are performing. If the interviewer asks you follow-up questions, they are expressing a strong interest in this topic and indicating that it is important to their operations. This is a signal for you to expand on your answer and give them more details than you normally would.

      William's Answer

      "A stack is a data structure that has several distinct characteristics. Stacks use a LIFO process, organizing the data as last in, first out. This differs from a queue, which processes data as first-in, first-out. The two operations a stack performs are push, which is insertion of the data at the top of the stack, and pop, which is removal of the last item added to the stack."

  16. 16.

    How would you implement Dijkstra's Shortest Path using a programming language with which you are familiar?

      View All 26 Amazon Answers
      Sign up to access our library of 50,000+ Answers,
      plus coaches for one-on-one support, so you can interview more confidently.
  17. 17.

    Many Amazon Software Engineers prefer to program in Java. Can you describe how you would implement linear search in JavaScript?

      View All 26 Amazon Answers
      Sign up to access our library of 50,000+ Answers,
      plus coaches for one-on-one support, so you can interview more confidently.
  18. 18.

    What are the differences between blocking and non-blocking calls in the context of Node.js?

      View All 26 Amazon Answers
      Sign up to access our library of 50,000+ Answers,
      plus coaches for one-on-one support, so you can interview more confidently.
  19. 19.

    Amazon web developers are incorporating HTML5 in their most recent websites. Can you describe the functions of web workers in HTML5?

      View All 26 Amazon Answers
      Sign up to access our library of 50,000+ Answers,
      plus coaches for one-on-one support, so you can interview more confidently.
  20. 20.

    Walk me through the steps to build a single page application with multiple sections using the programming framework in which you typically work.

      View All 26 Amazon Answers
      Sign up to access our library of 50,000+ Answers,
      plus coaches for one-on-one support, so you can interview more confidently.
  21. 21.

    Can you define black box testing and white box testing and discuss the differences between them?

      View All 26 Amazon Answers
      Sign up to access our library of 50,000+ Answers,
      plus coaches for one-on-one support, so you can interview more confidently.
  22. 22.

    Which do you prefer - a micro-service approach or a monolithic app?

      View All 26 Amazon Answers
      Sign up to access our library of 50,000+ Answers,
      plus coaches for one-on-one support, so you can interview more confidently.
  23. 23.

    Can you describe a tough software development problem you encountered in your last job and discuss how you solved it?

      View All 26 Amazon Answers
      Sign up to access our library of 50,000+ Answers,
      plus coaches for one-on-one support, so you can interview more confidently.
  24. 24.

    Here at Amazon, we value work life balance and initiative. What personal software development projects have you worked on outside of work?

      View All 26 Amazon Answers
      Sign up to access our library of 50,000+ Answers,
      plus coaches for one-on-one support, so you can interview more confidently.
  25. 25.

    How would you go about explaining Amazon's cloud computing environment to someone who doesn't have a technical background?

      View All 26 Amazon Answers
      Sign up to access our library of 50,000+ Answers,
      plus coaches for one-on-one support, so you can interview more confidently.
  26. 26.

    What are some of the programming languages you are familiar with, and which ones do you prefer?

      View All 26 Amazon Answers
      Sign up to access our library of 50,000+ Answers,
      plus coaches for one-on-one support, so you can interview more confidently.