Upload Button Icon Add office photos
Engaged Employer

i

This company page is being actively managed by Amazon Team. If you also belong to the team, you can get access from here

Amazon Verified Tick

Compare button icon Compare button icon Compare

Filter interviews by

Amazon Software Engineer Interview Questions and Answers

Updated 29 Apr 2025

78 Interview questions

A Software Engineer was asked 2mo ago
Q. Given an array of integers arr, and three integers a, b and c. You are tasked with finding the number of good triplets. A triplet (arr[i], arr[j], arr[k]) is good if the following conditions are true: 0 <...
Ans. 

Counting good triplets involves finding triplets in an array that satisfy specific conditions based on given parameters.

  • Definition of Good Triplet: A triplet (i, j, k) is considered good if i < j < k and arr[j] - arr[i] = arr[k] - arr[j].

  • Example: For the array [1, 2, 3, 4], the triplet (1, 2, 3) is good because 2 - 1 = 3 - 2 = 1.

  • Constraints: The problem may specify constraints on the values of i, j, and k, s...

A Software Engineer was asked 2mo ago
Q. Given an integer array nums, return true if there exists a triple of indices (i, j, k) such that i < j < k and nums[i] < nums[j] < nums[k]. If no such indices exists, return false.
Ans. 

The increasing triplet subsequence problem involves finding a subsequence of three numbers in an array that are in increasing order.

  • Definition: An increasing triplet subsequence is a sequence of three indices i, j, k such that i < j < k and nums[i] < nums[j] < nums[k].

  • Example: In the array [1, 2, 3, 4, 5], the triplet (1, 2, 3) is an increasing subsequence.

  • Optimal Approach: Use two variables to track t...

Software Engineer Interview Questions Asked at Other Companies

asked in Qualcomm
Q1. Four people need to cross a bridge at night with only one torch t ... read more
asked in Capgemini
Q2. In a dark room, there is a box of 18 white and 5 black gloves. Yo ... read more
Q3. Tell me something about yourself. Define encapsulation. What is i ... read more
asked in Paytm
Q4. Puzzle : 100 people are standing in a circle .each one is allowed ... read more
asked in TCS
Q5. Find the Duplicate Number Problem Statement Given an integer arra ... read more
A Software Engineer was asked 3mo ago
Q. Given a binary tree, find the maximum diagonal sum of the tree.
Ans. 

Find the maximum diagonal sum of a binary tree

  • Traverse the tree diagonally and keep track of the sum at each diagonal level

  • Use a hashmap to store the sum at each diagonal level

  • Return the maximum sum from the hashmap

🔥 Asked by recruiter 2 times
A Software Engineer was asked 3mo ago
Q. What are Java annotations, and how are they used in frameworks like Spring? Explain the difference between built-in and custom annotations.
Ans. 

Java annotations provide metadata for classes, methods, and fields, enhancing functionality in frameworks like Spring.

  • Annotations are a form of metadata that provide data about a program but are not part of the program itself.

  • In Spring, annotations like @Autowired and @Controller simplify dependency injection and define components.

  • Built-in annotations include @Override, @Deprecated, and @SuppressWarnings, which se...

What people are saying about Amazon

View All
an influencer marketing manager
2w
Should she delete her LinkedIn post or not?
Asking for a friend, Since last 3 months, she has been facing multiple issues including mental harassment by her manager at her workplace. She tried all official channels including reporting to the HR and even to the CEO eventually, but surprisingly, nothing happened. Infact, as a retaliation, she was put on PIP last month by here manager. So finally as a response to this continuous harassment, she went to LinkedIn and called out her manager, the company and even the CEO. And this is what she has received in response! The company is threatening her of legal actions and now we are confused, whether to delete the posts or to maintain our stand. Any help would be highly recommended at this point!
FeedCard Image
Got a question about Amazon?
Ask anonymously on communities.
🔥 Asked by recruiter 2 times
A Software Engineer was asked 3mo ago
Q. Explain the difference between ArrayList and LinkedList in Java. When would you choose one over the other?
Ans. 

ArrayList uses dynamic arrays, while LinkedList uses a doubly linked list structure for storing elements.

  • ArrayList is faster for random access (e.g., get(index)). Example: arrayList.get(5);

  • LinkedList is better for frequent insertions/deletions. Example: linkedList.addFirst('A');

  • ArrayList has a fixed size, while LinkedList can grow and shrink dynamically.

  • Memory overhead is higher for LinkedList due to node pointers...

🔥 Asked by recruiter 2 times
A Software Engineer was asked 3mo ago
Q. What is the difference between final, finally, and finalize in Java? Provide examples to illustrate their usage.
Ans. 

final, finally, and finalize have different meanings in Java.

  • final is a keyword used to declare constants, prevent method overriding, and prevent inheritance.

  • finally is a block used in exception handling to execute code after try-catch block.

  • finalize is a method used for cleanup operations before an object is garbage collected.

🔥 Asked by recruiter 2 times
A Software Engineer was asked 3mo ago
Q. What is the difference between == and .equals() in Java? When should each be used, and what issues can arise from improper usage?
Ans. 

In Java, == compares memory addresses while .equals() compares object contents.

  • Use == to compare primitive data types and object references.

  • Use .equals() to compare object contents, such as strings.

  • Improper usage can lead to unexpected results, as == may not always work as expected with objects.

Are these interview questions helpful?
🔥 Asked by recruiter 2 times
A Software Engineer was asked 3mo ago
Q. Can you explain the difference between method overloading and method overriding in Java? Provide examples where each should be used.
Ans. 

Method overloading involves creating multiple methods in the same class with the same name but different parameters, while method overriding involves creating a new implementation of a method in a subclass.

  • Method overloading is used to provide different ways to call a method with different parameters. For example, having multiple constructors in a class with different parameter lists.

  • Method overriding is used to p...

🔥 Asked by recruiter 2 times
A Software Engineer was asked 3mo ago
Q. What is a Java Stream, and how does it differ from an Iterator? Explain how Streams can be used to process collections efficiently.
Ans. 

Java Streams provide a functional approach to processing sequences of elements, unlike Iterators which are imperative.

  • Streams are part of the Java 8+ API, enabling functional-style operations on collections.

  • Unlike Iterators, Streams do not store data; they process data on-the-fly.

  • Streams support operations like map, filter, and reduce, allowing for concise and readable code.

  • Example: List<String> names = Arra...

🔥 Asked by recruiter 2 times
A Software Engineer was asked 3mo ago
Q. What is the difference between == and .equals() in Java? When should each be used, and what issues can arise from improper usage?
Ans. 

In Java, == compares memory addresses while .equals() compares values of objects.

  • Use == to compare primitive data types and object references.

  • Use .equals() to compare the actual values of objects.

  • Improper usage can lead to unexpected results, such as comparing memory addresses instead of values.

Amazon Software Engineer Interview Experiences

80 interviews found

Interview experience
5
Excellent
Difficulty level
-
Process Duration
-
Result
-

Interview Questionnaire 

20 Questions

  • Q1. Explain the difference between ArrayList and LinkedList in Java. When would you choose one over the other?
  • Q2. What are the advantages and disadvantages of using Java’s synchronized keyword for thread synchronization? Can you explain how the ReentrantLock compares to synchronized?
  • Ans. 

    Using synchronized keyword for thread synchronization in Java has advantages like simplicity and disadvantages like potential for deadlock. ReentrantLock offers more flexibility and control.

    • Advantages of using synchronized keyword: simplicity, built-in support in Java

    • Disadvantages of using synchronized keyword: potential for deadlock, lack of flexibility

    • ReentrantLock offers more flexibility and control: ability to try ...

  • Answered by AI
  • Q3. What is the difference between == and .equals() in Java? When should each be used, and what issues can arise from improper usage?
  • Q4. How does the Java garbage collector work? Can you describe the different types of garbage collection algorithms available in Java?
  • Ans. 

    The Java garbage collector automatically manages memory by reclaiming unused objects.

    • Java garbage collector runs in the background, periodically identifying and removing objects that are no longer needed.

    • Different types of garbage collection algorithms in Java include Serial, Parallel, CMS, G1, and ZGC.

    • Serial garbage collector uses a single thread for garbage collection, while Parallel garbage collector uses multiple t...

  • Answered by AI
  • Q5. What are the main features of Java 8? Can you explain how lambdas and the Stream API have changed the way Java applications are written?
  • Ans. 

    Java 8 introduced features like lambdas and Stream API which revolutionized the way Java applications are written.

    • Lambdas allow for more concise and readable code by enabling functional programming style.

    • Stream API provides a way to process collections of objects in a functional way, allowing for easier parallel processing and improved performance.

    • Java 8 also introduced default methods in interfaces, allowing for backw...

  • Answered by AI
  • Q6. Describe the differences between checked and unchecked exceptions in Java. Provide examples and explain how to handle them properly.
  • Q7. What is the Java Memory Model, and how does it affect multithreading and synchronization? How does volatile help ensure memory visibility?
  • Ans. 

    The Java Memory Model defines how threads interact through memory and how changes made by one thread are visible to others.

    • Java Memory Model ensures that changes made by one thread are visible to other threads.

    • It defines the behavior of threads in terms of reading and writing to memory.

    • Synchronization in Java ensures that only one thread can access a shared resource at a time.

    • The 'volatile' keyword in Java ensures that...

  • Answered by AI
  • Q8. Can you explain the difference between method overloading and method overriding in Java? Provide examples where each should be used.
  • Q9. What are functional interfaces in Java? How do they work with lambda expressions? Provide an example of a custom functional interface.
  • Ans. 

    Functional interfaces in Java are interfaces with a single abstract method. They can be used with lambda expressions for functional programming.

    • Functional interfaces have only one abstract method, but can have multiple default or static methods.

    • They can be used with lambda expressions to provide a concise way of implementing the abstract method.

    • An example of a custom functional interface is 'MyFunctionalInterface' with...

  • Answered by AI
  • Q10. What is a Java Stream, and how does it differ from an Iterator? Explain how Streams can be used to process collections efficiently.
  • Q11. Explain the concept of immutability in Java. How does the String class achieve immutability, and what are the advantages of immutable objects?
  • Ans. 

    Immutability in Java means that once an object is created, its state cannot be changed.

    • String class achieves immutability by making the value of the string constant and not allowing it to be changed after creation.

    • Advantages of immutable objects include thread safety, caching, and easier debugging.

    • Immutable objects are inherently thread-safe because their state cannot be modified, reducing the risk of concurrency issue...

  • Answered by AI
  • Q12. What is the difference between final, finally, and finalize in Java? Provide examples to illustrate their usage.
  • Q13. Explain the Singleton design pattern in Java. How can you implement it safely to ensure thread safety?
  • Ans. 

    Singleton design pattern ensures a class has only one instance and provides a global point of access to it.

    • Create a private static instance of the class.

    • Make the constructor private to prevent instantiation from outside the class.

    • Provide a public static method to access the instance, creating it if necessary.

    • Use synchronized keyword or double-checked locking to ensure thread safety.

  • Answered by AI
  • Q14. What are Java annotations, and how are they used in frameworks like Spring? Explain the difference between built-in and custom annotations.
  • Q15. How do Java Streams handle parallel processing? What are the potential pitfalls of using parallel streams, and how can they be mitigated?
  • Ans. 

    Java Streams can handle parallel processing using parallel streams. Pitfalls include increased complexity and potential for race conditions.

    • Java Streams can be processed in parallel by calling the parallel() method on a stream.

    • Potential pitfalls of using parallel streams include increased complexity, potential for race conditions, and performance overhead due to thread management.

    • To mitigate these pitfalls, ensure that...

  • Answered by AI
  • Q16. Explain the difference between ArrayList and LinkedList in Java. ArrayList is implemented as a dynamic array, while LinkedList is a doubly linked list. ArrayList provides fast random access (O(1) complexi...
  • Ans. 

    ArrayList is preferred for frequent retrieval operations due to fast random access, while LinkedList is suitable for frequent insertions/deletions.

    • Use ArrayList when frequent retrieval operations are required, such as searching for elements in a large collection.

    • Choose LinkedList when frequent insertions/deletions are needed, like maintaining a queue or stack.

    • Consider memory overhead and performance trade-offs when dec...

  • Answered by AI
  • Q17. What are the advantages and disadvantages of using Java’s synchronized keyword for thread synchronization? The synchronized keyword ensures that only one thread can access a block of code at a time. It pr...
  • Ans. 

    ReentrantLock should be used instead of synchronized when more flexibility and control over locking mechanisms is needed.

    • Use ReentrantLock when you need to implement custom locking strategies or require advanced features like tryLock() and lockInterruptibly().

    • ReentrantLock supports fair locking mechanisms, ensuring that threads are granted access in the order they requested it.

    • Explicit unlocking in ReentrantLock reduce...

  • Answered by AI
  • Q18. What is the difference between == and .equals() in Java? == checks for reference equality, meaning it compares memory addresses. equals() checks for value equality, which can be overridden in user-defined...
  • Ans. 

    In Java, == checks for reference equality while equals() checks for value equality. Misuse of == can lead to logical errors.

    • Override equals() when you want to compare the values of objects instead of their references

    • Override hashCode() method alongside equals() to ensure proper functioning in collections like HashMap

    • Implement Comparable interface if you want to define a natural ordering for objects

  • Answered by AI
  • Q19. How does the Java garbage collector work? Garbage collection in Java automatically reclaims memory occupied by unused objects. The JVM has different types of GC algorithms, including Serial, Parallel, CMS...
  • Ans. 

    Garbage collection in Java automatically reclaims memory occupied by unused objects using different algorithms and memory regions.

    • Force garbage collection in Java using System.gc() or Runtime.gc() methods.

    • Not recommended to force garbage collection as it can cause performance issues by disrupting the JVM's natural memory management.

    • Forcing garbage collection can lead to unnecessary CPU usage and potential application s...

  • Answered by AI
  • Q20. What are the main features of Java 8? Java 8 introduced lambda expressions, enabling functional-style programming. The Stream API allows efficient data processing with map, filter, and reduce operations. ...
  • Ans. 

    Lambda expressions in Java 8 improve readability and maintainability by enabling concise and functional-style programming.

    • Lambda expressions allow writing more compact code by reducing boilerplate code.

    • They enable passing behavior as arguments to methods, making code more modular and flexible.

    • Example: (a, b) -> a + b is a lambda expression that adds two numbers.

  • Answered by AI
Interview experience
3
Average
Difficulty level
Hard
Process Duration
2-4 weeks
Result
Selected Selected

I appeared for an interview in Jan 2025, where I was asked the following questions.

  • Q1. Explain the difference between ArrayList and LinkedList in Java. When would you choose one over the other?
  • Q2. What are the advantages and disadvantages of using Java’s synchronized keyword for thread synchronization? Can you explain how the ReentrantLock compares to synchronized?
  • Ans. 

    Using Java's synchronized keyword for thread synchronization has advantages like simplicity and disadvantages like potential for deadlock. ReentrantLock offers more flexibility and control.

    • Advantages of synchronized keyword: simplicity, built-in support in Java

    • Disadvantages of synchronized keyword: potential for deadlock, lack of flexibility

    • ReentrantLock advantages: more flexibility, ability to try and lock with timeou...

  • Answered by AI
  • Q3. What is the difference between == and .equals() in Java? When should each be used, and what issues can arise from improper usage?
  • Q4. How does the Java garbage collector work? Can you describe the different types of garbage collection algorithms available in Java?
  • Ans. 

    The Java garbage collector automatically manages memory by reclaiming unused objects.

    • Garbage collection in Java is done by the JVM to reclaim memory occupied by objects that are no longer in use.

    • There are different types of garbage collection algorithms in Java such as Serial, Parallel, CMS, G1, and Z Garbage Collector.

    • Each algorithm has its own way of managing memory and has different performance characteristics.

    • For e...

  • Answered by AI
  • Q5. What are the main features of Java 8? Can you explain how lambdas and the Stream API have changed the way Java applications are written?
  • Ans. 

    Java 8 introduced features like lambdas and Stream API which revolutionized the way Java applications are written.

    • Lambdas allow for more concise and readable code by enabling functional programming style.

    • Stream API provides a way to process collections of objects in a functional way, allowing for easier parallel processing and improved performance.

    • Java 8 also introduced default methods in interfaces, allowing for backw...

  • Answered by AI
  • Q6. Describe the differences between checked and unchecked exceptions in Java. Provide examples and explain how to handle them properly.
  • Q7. What is the Java Memory Model, and how does it affect multithreading and synchronization? How does volatile help ensure memory visibility?
  • Ans. 

    The Java Memory Model defines how threads interact through memory and how synchronization ensures data consistency.

    • Java Memory Model specifies how threads interact with memory

    • Synchronization ensures data consistency by preventing race conditions

    • Volatile keyword ensures visibility of changes made by one thread to other threads

    • Volatile variables are not cached locally by threads, always read from main memory

    • Example: Usin...

  • Answered by AI
  • Q8. Can you explain the difference between method overloading and method overriding in Java? Provide examples where each should be used.
  • Q9. What are functional interfaces in Java? How do they work with lambda expressions? Provide an example of a custom functional interface.
  • Ans. 

    Functional interfaces in Java are interfaces with a single abstract method. They can be used with lambda expressions for functional programming.

    • Functional interfaces have only one abstract method, but can have multiple default or static methods.

    • Lambda expressions can be used to implement the abstract method of a functional interface concisely.

    • An example of a custom functional interface is 'Calculator' with a single abs...

  • Answered by AI
  • Q10. What is a Java Stream, and how does it differ from an Iterator? Explain how Streams can be used to process collections efficiently.
  • Q11. Explain the concept of immutability in Java. How does the String class achieve immutability, and what are the advantages of immutable objects?
  • Ans. 

    Immutability in Java means objects cannot be modified after creation. String class achieves immutability by not allowing changes to its value.

    • Immutability means once an object is created, its state cannot be changed

    • String class achieves immutability by making the value of the string constant and not allowing modification

    • Advantages of immutable objects include thread safety, caching, and ease of use

  • Answered by AI
  • Q12. What is the difference between final, finally, and finalize in Java? Provide examples to illustrate their usage.
  • Q13. Explain the Singleton design pattern in Java. How can you implement it safely to ensure thread safety?
  • Ans. 

    Singleton design pattern ensures a class has only one instance and provides a global point of access to it.

    • Create a private static instance of the class within the class itself.

    • Provide a public static method to access the instance, creating it if necessary.

    • Ensure the constructor is private to prevent instantiation from outside the class.

    • Use synchronized keyword or double-checked locking to ensure thread safety.

  • Answered by AI
  • Q14. What are Java annotations, and how are they used in frameworks like Spring? Explain the difference between built-in and custom annotations.
  • Q15. How do Java Streams handle parallel processing? What are the potential pitfalls of using parallel streams, and how can they be mitigated?
  • Ans. 

    Java Streams can handle parallel processing using parallel streams. Pitfalls include increased complexity and potential for race conditions.

    • Java Streams can be processed in parallel by calling the parallel() method on a stream.

    • Potential pitfalls of using parallel streams include increased complexity, potential for race conditions, and performance overhead due to thread management.

    • To mitigate these pitfalls, ensure that...

  • Answered by AI
  • Q16. Explain the difference between ArrayList and LinkedList in Java. ArrayList is implemented as a dynamic array, while LinkedList is a doubly linked list. ArrayList provides fast random access (O(1) complexi...
  • Ans. 

    ArrayList for frequent retrieval, LinkedList for frequent insertions/deletions.

    • Use ArrayList for scenarios where frequent retrieval operations are needed, such as searching or sorting large datasets.

    • Choose LinkedList when frequent insertions/deletions are required, like maintaining a queue or stack.

    • Consider memory overhead and performance trade-offs when deciding between ArrayList and LinkedList.

  • Answered by AI
  • Q17. What are the advantages and disadvantages of using Java’s synchronized keyword for thread synchronization? The synchronized keyword ensures that only one thread can access a block of code at a time. It pr...
  • Ans. 

    ReentrantLock should be used instead of synchronized when more flexibility and control over locking mechanisms is needed.

    • Use ReentrantLock when you need to implement advanced locking mechanisms like tryLock() or lockInterruptibly()

    • ReentrantLock supports fair locking, ensuring that threads acquire the lock in the order they requested it

    • Explicit unlocking in ReentrantLock reduces the chances of deadlocks and allows for m...

  • Answered by AI
  • Q18. What is the difference between == and .equals() in Java? == checks for reference equality, meaning it compares memory addresses. equals() checks for value equality, which can be overridden in user-defined...
  • Ans. 

    In Java, == checks for reference equality while equals() checks for value equality. Misuse of == can lead to logical errors.

    • Override equals() when you want to compare the values of objects instead of their references

    • Override hashCode() alongside equals() to ensure consistent behavior in collections like HashMap

    • Consider implementing Comparable interface for natural ordering of objects

  • Answered by AI
  • Q19. How does the Java garbage collector work? Garbage collection in Java automatically reclaims memory occupied by unused objects. The JVM has different types of GC algorithms, including Serial, Parallel, CMS...
  • Ans. 

    Garbage collection in Java automatically reclaims memory occupied by unused objects using different algorithms and memory regions.

    • Java garbage collection automatically reclaims memory from unused objects

    • Different types of GC algorithms in Java include Serial, Parallel, CMS, and G1 GC

    • Objects are managed in Young Generation, Old Generation, and PermGen/Metaspace

    • Minor GC cleans up short-lived objects in Young Generation

    • Ma...

  • Answered by AI
  • Q20. What are the main features of Java 8? Java 8 introduced lambda expressions, enabling functional-style programming. The Stream API allows efficient data processing with map, filter, and reduce operations. ...
  • Ans. 

    Lambda expressions in Java 8 improve readability and maintainability by enabling concise and functional-style programming.

    • Lambda expressions allow writing more compact code by reducing boilerplate code.

    • They enable passing behavior as arguments to methods, making code more modular and flexible.

    • Example: (a, b) -> a + b is a lambda expression that adds two numbers.

    • Lambda expressions can be used with functional interfac...

  • Answered by AI
Interview experience
5
Excellent
Difficulty level
Moderate
Process Duration
-
Result
Not Selected
Round 1 - One-on-one 

(2 Questions)

  • Q1. In an array where all elements are repeated twice, find an element that is repeated once
  • Q2. Find the maximum diagonal sum of a binary tree
Interview experience
5
Excellent
Difficulty level
-
Process Duration
-
Result
-
Round 1 - Coding Test 

3 leetcode hards, followed by some system design

Round 2 - Technical 

(2 Questions)

  • Q1. How to design amazon
  • Ans. 

    Designing Amazon involves creating a user-friendly e-commerce platform with a vast product selection, efficient search and recommendation algorithms, secure payment processing, and reliable delivery logistics.

    • Develop a user-friendly interface for easy navigation and product search

    • Implement recommendation algorithms based on user behavior and preferences

    • Integrate secure payment processing systems to protect customer inf...

  • Answered by AI
  • Q2. How to invert 25 bst
  • Ans. 

    To invert a binary search tree (BST), swap the left and right children of each node recursively.

    • Start from the root node and recursively swap the left and right children of each node.

    • Repeat this process for all nodes in the BST.

    • The final result will be the inverted BST.

  • Answered by AI

Interview Preparation Tips

Interview preparation tips for other job seekers - pretty easy

Skills evaluated in this interview

Interview experience
5
Excellent
Difficulty level
-
Process Duration
-
Result
-
Round 1 - Aptitude Test 

The Aptitude was quite hard

Round 2 - Coding Test 

The coding round was medium

Round 3 - One-on-one 

(1 Question)

  • Q1. They asked dsa, operating system, coding
Interview experience
4
Good
Difficulty level
Hard
Process Duration
2-4 weeks
Result
Not Selected

I appeared for an interview in Mar 2025, where I was asked the following questions.

  • Q1. Question:1 Count good triplets in an array
  • Q2. Question:2 Increasing triplet subsequence
Interview experience
4
Good
Difficulty level
Moderate
Process Duration
Less than 2 weeks
Result
Selected Selected

I applied via Naukri.com and was interviewed in May 2024. There were 3 interview rounds.

Round 1 - Coding Test 

Coding questions based on DP

Round 2 - One-on-one 

(2 Questions)

  • Q1. Binary search based question
  • Q2. Graph bfs based question
Round 3 - Technical 

(2 Questions)

  • Q1. Question related to my project
  • Q2. Question based on dsa
Interview experience
4
Good
Difficulty level
Moderate
Process Duration
-
Result
Selected Selected

I applied via Referral

Round 1 - Coding Test 

2 coding question were asked

Round 2 - Technical 

(2 Questions)

  • Q1. Sum on node in binary tree
  • Ans. 

    Recursively sum the values of nodes in a binary tree

    • Use a recursive function to traverse the tree and add the values of each node

    • Base case: if the current node is null, return 0

    • Recursive step: return the sum of current node value, left subtree sum, and right subtree sum

  • Answered by AI
  • Q2. Lp question asked
Round 3 - Technical 

(2 Questions)

  • Q1. Question on string manipulation
  • Q2. Lp question asked
Round 4 - Technical 

(2 Questions)

  • Q1. Managerial question on projects were asked
  • Q2. Past experience and leadership question

Skills evaluated in this interview

Interview experience
5
Excellent
Difficulty level
-
Process Duration
-
Result
-
Round 1 - Coding Test 

Hard and platformwas leetcode and geeksforgeeks

Round 2 - Technical 

(2 Questions)

  • Q1. Medium level code was asked
  • Q2. Hard level code as asked

Interview Preparation Tips

Interview preparation tips for other job seekers - Prepare well through leetcode
Interview experience
4
Good
Difficulty level
Moderate
Process Duration
2-4 weeks
Result
Selected Selected
Round 1 - Coding Test 

Good, leetcode medium level questions

Amazon Interview FAQs

How many rounds are there in Amazon Software Engineer interview?
Amazon interview process usually has 2-3 rounds. The most common rounds in the Amazon interview process are Coding Test, Technical and Resume Shortlist.
How to prepare for Amazon Software Engineer interview?
Go through your CV in detail and study all the technologies mentioned in your CV. Prepare at least two technologies or languages in depth if you are appearing for a technical interview at Amazon. The most common topics and skills that interviewers at Amazon expect are Architectural Design, Clinical SAS Programming, Medical Coding, Computer Science and Technology Solutions.
What are the top questions asked in Amazon Software Engineer interview?

Some of the top questions asked at the Amazon Software Engineer interview -

  1. You have given 10 files and you have given a string suggest data structure whic...read more
  2. Given a binary tree in which the node structure has an additional field called ...read more
  3. Explain the difference between ArrayList and LinkedList in Java. ArrayList is i...read more
What are the most common questions asked in Amazon Software Engineer HR round?

The most common HR questions asked in Amazon Software Engineer interview are -

  1. Why are you looking for a chan...read more
  2. What is your family backgrou...read more
  3. What are your strengths and weakness...read more
How long is the Amazon Software Engineer interview process?

The duration of Amazon Software Engineer interview process can vary, but typically it takes about 2-4 weeks to complete.

Tell us how to improve this page.

Overall Interview Experience Rating

4.1/5

based on 62 interview experiences

Difficulty level

Easy 11%
Moderate 68%
Hard 22%

Duration

Less than 2 weeks 47%
2-4 weeks 36%
4-6 weeks 11%
More than 8 weeks 6%
View more
Amazon Software Engineer Salary
based on 2.1k salaries
₹25 L/yr - ₹45 L/yr
271% more than the average Software Engineer Salary in India
View more details

Amazon Software Engineer Reviews and Ratings

based on 158 reviews

3.7/5

Rating in categories

3.9

Skill development

3.3

Work-life balance

4.1

Salary

3.2

Job security

3.3

Company culture

3.5

Promotions

3.6

Work satisfaction

Explore 158 Reviews and Ratings
Sr. Software Engineer, Amazon QuickSight

Bangalore / Bengaluru

5-10 Yrs

Not Disclosed

Software Engineer, Translation Services

Hyderabad / Secunderabad

5-10 Yrs

Not Disclosed

Software Engineer, Translation Services

Hyderabad / Secunderabad

3-8 Yrs

Not Disclosed

Explore more jobs
Customer Service Associate
4.1k salaries
unlock blur

₹1.8 L/yr - ₹5 L/yr

Transaction Risk Investigator
3.1k salaries
unlock blur

₹2.9 L/yr - ₹6.5 L/yr

Associate
3.1k salaries
unlock blur

₹2 L/yr - ₹5.5 L/yr

Senior Associate
2.6k salaries
unlock blur

₹4 L/yr - ₹9 L/yr

Software Developer
2.3k salaries
unlock blur

₹24.8 L/yr - ₹44.1 L/yr

Explore more salaries
Compare Amazon with

Flipkart

3.9
Compare

TCS

3.6
Compare

Google

4.4
Compare

Netflix

4.2
Compare
write
Share an Interview