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)
Tell me about yourself
The interview started with a common introductory question: 'Tell me about yourself.'
Current Project Discussion
I was asked to describe the current project I am working on, focusing on its details and my role.
React: Functional vs Class Components
I was asked whether I use functional or class components in React and to discuss the differences.
React: Data Transfer Between Components
Explain how data is transferred between different components in React applications.
React: Stateless vs Stateful Components
Describe stateless vs stateful components in React, providing examples for each.
React Lifecycle
Explain the React component lifecycle in detail and discuss scenarios where each lifecycle method is used.
React: ComponentDidMount and ComponentWillUnmount
Explain the ComponentDidMount and ComponentWillUnmount lifecycle methods with code examples.
Java: Marker Interface
What is a marker interface in Java? Provide details and examples.
Java: Thread Lifecycle
Describe the lifecycle of a thread in Java.
Java: Methods to Create a Thread
What are the different methods available to create a thread in Java?
Java: Managing Deadlock
Discuss various ways to manage and prevent deadlock in Java applications.
Java: Serialization/Deserialization
Explain serialization and deserialization in Java in detail.
Java: Tech Stack Versions
What Spring version and Java version are you currently using in your company?
Java: Java 8 Features
Describe the differences in features between Java 8 and earlier versions.
Java: Memory Management
Explain different types of memory in Java and how Java utilizes them.
Java: Immutability and String
What is immutability in Java? Explain why String is immutable in Java.
Java: Singleton Class
Explain the concept of a singleton class in Java and provide a code example.
Java: Reflection/Stream API Usage
Have you used Java Reflection API or Stream API in your projects?
Map School Name to Student IDs
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.
Tell me about yourself
The second round also started with an introduction: 'Tell me about yourself.'
Current Project Discussion
Similar to the first round, I was asked to discuss my current project.
React: API Request Handling at Scale
If 10,000 requests are coming up on your API, how would you handle them in a React application context?
JWT Authentication
Explain JWT (JSON Web Token) authentication in detail, especially since I mentioned working with it.
Browser Memory Types
Describe the different types of memory available in a browser.
React: Cross-Tab Logout
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?
Middleware Concept and Experience
What is middleware? Have you worked on any middleware implementations?
React Lifecycle
Again, I was asked about the React component lifecycle.
Java: Stream API
Explain the Java Stream API and its functionalities.
Java: Exception Handling
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.
Java: Throwable vs Throws
Explain the difference between Throwable and throws keywords in Java.
Explain your project
This round focused heavily on my resume, and I was asked to explain my current project in detail.
Used REST API Methods
What REST API methods have you used in your project?
Code Optimization for Concurrent Requests
How do you optimize your code if you are receiving multiple requests simultaneously?
Application Deployment Process
Explain the process of deploying applications in your current company.
Resolving Git Merge Conflicts
How do you resolve merge conflicts when working with Git?
Why Leaving Current Company?
I was asked about my reasons for leaving my current company.
Awareness of AmEx Products
What products of American Express are you aware of?