American Express | Full Stack Developer | Gurgaon | Mar 2023 [Offer]
Summary
I interviewed for an Engineer III role at American Express in Gurgaon and successfully received an offer after completing three rigorous rounds that focused on React, Java, system design, and behavioral aspects.
Full Experience
Application Process
In March 2023, a recruiter reached out to me after finding my profile on Naukri.com. The entire interview process consisted of three online rounds and took about one month to complete.
Interview Round 1 (Technical: 1.5 hr)
This round had three interviewers: two with 1.5 years of experience and one with over 8 years of experience. I had previously informed them that I possessed basic knowledge of React JS, so the questions in that area were fundamental.
General & React JS Questions:
- I started by introducing myself.
- I then discussed my current project in detail.
- The React questions covered foundational topics:
- Do I use functional or class components?
- How do I transfer data between components?
- Explain stateless vs. stateful components with examples.
- Describe the React lifecycle in detail, including scenarios for each stage.
- Explain
ComponentDidMountandComponentWillUnmountwith code. - An output code question related to React was given on chat, and I was asked to share my screen to solve it.
Java Questions:
- What is a marker interface? Explain in detail with examples.
- Describe the thread lifecycle.
- What are the different methods to create a thread?
- Discuss ways to manage deadlock.
- Explain serialization/deserialization in detail.
- What Spring and Java versions am I using in my current company?
- What are the differences in features between Java 8 and earlier versions?
- Describe different types of memory and how Java utilizes them.
- What is immutability? Why is
Stringimmutable in Java? - Explain the singleton class with code.
- Have I used Reflection API or Stream API?
Coding Problem:
I was given a problem involving two classes: class Student { id, section, house } and class School { id, name, Student id }. Given a List<Student> students and a List<School> schools, the task was to create a map where the key is the school name, and the value is a list of student IDs associated with that school.
Interview Round 2 (Technical: 1.5 hrs)
This round involved two senior engineers, one specializing in frontend and the other in backend.
General & React JS Questions:
- The round began with me introducing myself and discussing my current project again.
- The React questions moved towards design and concepts:
- If 10,000 requests are coming to my API, how would I handle it?
- Explain JWT authentication in detail, as I had mentioned working with it.
- Describe the types of memory in a browser.
- How would I handle a scenario where I've logged out of Facebook from one tab, but it needs to log out from all other open tabs in the browser using React?
- What is middleware, and have I worked with any?
- Another question on React lifecycle was asked.
Java Questions:
- What is the Stream API?
- Several questions on multithreading concepts.
- An output question related to call by value/call by reference.
- Discuss exception handling in detail: types of exceptions, common exceptions faced, and resolution strategies. An output question on exception handling was also included.
- Explain the difference between
Throwableandthrows.
Interview Round 3 (Tech + Managerial: 1 hr)
This final round was heavily based on my resume, discussions around my current project, and behavioral questions.
- I was asked to explain my project in depth.
- Which REST API methods have I used in my project?
- How do I optimize my code if I'm getting multiple requests simultaneously?
- Explain the application deployment process in my current company.
- How do I resolve merge conflicts in Git?
- Why am I leaving my current company?
- What products of American Express am I aware of?
Post Interviews
The recruiter reached out to me right after my final round to inform me that I had been selected. Within one week, they requested my details, and I received my offer letter two weeks after my selection.
Interview Questions (37)
The interview started with a common introductory question: 'Tell me about yourself.'
I was asked to describe the current project I am working on, focusing on its details and my role.
I was asked whether I use functional or class components in React and to discuss the differences.
Explain how data is transferred between different components in React applications.
Describe stateless vs stateful components in React, providing examples for each.
Explain the React component lifecycle in detail and discuss scenarios where each lifecycle method is used.
Explain the ComponentDidMount and ComponentWillUnmount lifecycle methods with code examples.
What is a marker interface in Java? Provide details and examples.
Describe the lifecycle of a thread in Java.
What are the different methods available to create a thread in Java?
Discuss various ways to manage and prevent deadlock in Java applications.
Explain serialization and deserialization in Java in detail.
What Spring version and Java version are you currently using in your company?
Describe the differences in features between Java 8 and earlier versions.
Explain different types of memory in Java and how Java utilizes them.
What is immutability in Java? Explain why String is immutable in Java.
Explain the concept of a singleton class in Java and provide a code example.
Have you used Java Reflection API or Stream API in your projects?
Given two classes: class Student { int id; String section; String house; } and class School { int id; String name; int student_id; }. You are provided with List<Student> students and List<School> schools. The task is to create a map where the key is the school name and the value is a list of student IDs associated with that school.
The second round also started with an introduction: 'Tell me about yourself.'
Similar to the first round, I was asked to discuss my current project.
If 10,000 requests are coming up on your API, how would you handle them in a React application context?
Explain JWT (JSON Web Token) authentication in detail, especially since I mentioned working with it.
Describe the different types of memory available in a browser.
Suppose you have opened Facebook in multiple browser tabs. If you log out from one tab, how would you ensure that the user is logged out from all other open tabs using React?
What is middleware? Have you worked on any middleware implementations?
Again, I was asked about the React component lifecycle.
Explain the Java Stream API and its functionalities.
Discuss exception handling in detail. What are the different types of exceptions? What are common exceptions you face, and how do you resolve them? An output question on exception handling was also presented.
Explain the difference between Throwable and throws keywords in Java.
This round focused heavily on my resume, and I was asked to explain my current project in detail.
What REST API methods have you used in your project?
How do you optimize your code if you are receiving multiple requests simultaneously?
Explain the process of deploying applications in your current company.
How do you resolve merge conflicts when working with Git?
I was asked about my reasons for leaving my current company.
What products of American Express are you aware of?