Morgan Stanley – Interview Experience (Backend Engineer | Java + Microservices)
Summary
I recently interviewed for a Backend Engineer position at Morgan Stanley, focusing on Java and Microservices, leveraging my 2.4 years of experience. The process involved multiple technical rounds testing my DSA, System Design, and core Java knowledge, culminating in managerial and HR discussions.
Full Experience
Round 1 Online – Technical (Java + DSA + System Design Basics)
This round started with a deep dive into my resume, where we discussed my end-to-end projects in detail. Following that, I was asked questions on Data Structures and Algorithms, specifically regarding Anagrams and its variations.
The discussion then moved to Microservices concepts:
- How to track a request across microservices, focusing on Distributed Tracing.
- Questions about the build tools I have used in my projects.
- The flow of a CI/CD Pipeline.
- The responsibilities of an API Gateway in a microservices architecture.
Round 2 Offline – Technical + Low-Level Design + SQL
The second round, conducted offline, covered a broader range of topics:
- Explanation of SOLID principles and their real-world mapping.
- A comparison between Monolithic and Microservices architectures, including their pros, cons, and appropriate use cases.
- Another DSA question, this time on spiral printing of a matrix.
- Detailed questions about Kubernetes, specifically deployment steps, scaling strategies, and managing instances.
- A Low-Level Design (LLD) problem where I had to write a complete service on paper, detailing the flow from Controller to Service, DAO, and Entity layers.
- Two query-based SQL questions (details not specified).
- Discussions around UI Architecture.
- My latest project was also discussed, covering its architecture, my role, and the challenges I faced.
Round 3 – Advanced Java + Concurrency + Managerial
This round was split into technical and managerial sections.
Technical Questions:
- A multithreading scenario: find the highest number in a random matrix using multiple threads.
- Explanation of CAS (Compare-And-Swap) in Java.
- Discussion on transaction management in Java.
Managerial Questions:
- My reaction if I were asked to report to a junior colleague.
- How I would react if I was not promoted.
- My problem-solving approach: do I solve first and ask later, or understand from others and then solve?
SQL Conceptual:
- Given
table1(10 rows) andtable2(20 rows), what would be the output count ofSELECT * FROM table1, table2? - After deleting 10 rows from
table1, what would be the expected output count from the same query?
HR Round – Discussion
The final round was a standard HR discussion covering:
- My basic details, current role, and responsibilities.
- My current residence and relocation preferences.
- My current and expected CTC.
- What I know about Morgan Stanley and their stock.
- Why I want to join Morgan Stanley, requiring justification.
- My willingness to move to Bangalore and the justification for it.
Interview Questions (17)
Discuss problems related to identifying anagrams of strings and their various common problem variations.
Explain how to track a request as it flows across multiple microservices in a distributed system, specifically discussing concepts like Distributed Tracing.
Discuss common build tools used in project development.
Describe the end-to-end flow of a Continuous Integration/Continuous Delivery (CI/CD) pipeline.
Explain the key responsibilities and functions of an API Gateway in a microservices architecture.
Explain the SOLID principles of object-oriented design and provide examples of their real-world application.
Compare and contrast Monolithic and Microservices architectures, discussing their pros, cons, and appropriate use cases.
Given a matrix, print its elements in spiral order.
Discuss the steps involved in deploying applications using Kubernetes, including concepts of scaling and managing instances.
Design a complete service on paper, outlining its architecture from Controller to Service layer, Data Access Object (DAO), and Entity mapping.
Design a multithreaded solution to find the highest number in a randomly generated matrix.
Explain the Compare-And-Swap (CAS) operation in Java, including its usage and benefits in concurrent programming.
Discuss transaction management concepts and implementations in Java applications.
How would you react if you were asked to report to a colleague who is junior to you in terms of experience or tenure?
How would you react if you were not promoted, especially if you felt you deserved it?
Describe your preferred problem-solving approach: do you attempt to solve problems independently first, or do you seek understanding and input from others before proceeding?
Given two tables, table1 with 10 rows and table2 with 20 rows, what is the expected output count of SELECT * FROM table1, table2? Also, what would be the expected output count after deleting 10 rows from table1?