Morgan Stanley | Bangalore | Senior Associate | Mid April 2022 | India
Summary
I interviewed for a Software Engineer position at Morgan Stanley in Bangalore, which involved four rounds covering data structures, Java, SQL, system design, and behavioral aspects. I shared my 3 years of experience across product and service-based companies.
Full Experience
I went through an interview process with Morgan Stanley for a Software Engineer role in Bangalore. My professional background spans approximately 3 years, comprising 1.5 years at a product-based startup and 1.4 years at a service-based MNC.
The entire process was structured into four distinct rounds.
Round 1: Online Assessment
This round consisted of 10 Multiple Choice Questions and 2 coding problems which were comparable to LeetCode Medium difficulty.Round 2: Technical Interview I
This interview focused on both Data Structures and Java. For DS, I was asked to:- Find a loop in a Linked List, with a follow-up to remove it.
- Check if a Linked List is a palindrome.
- Explanation and code implementation of the Singleton design pattern.
- Detailed discussion of OOPS concepts with examples.
- The differences between
StringandStringBuffer. - The internal working mechanism of HashMap.
- SQL queries, specifically for finding the 3rd highest salary and general join-related questions.
- When to choose NoSQL databases over SQL databases.
Round 3: Technical Interview II
This round also heavily focused on Data Structures and Java, with a strong emphasis on optimization and exploring multiple approaches for each problem. The DS questions included:- Finding the starting point of a loop in a Linked List.
- Identifying the first non-repeating character in a string.
- Sorting an array after squaring its elements.
- Finding the longest common prefix of an array of strings.
- The internal working of both HashMap and HashSet.
- Strategies for handling a large number of incoming requests in a system.
- Discussion on different memory areas within the JVM.
Hiring Manager Round
This final round involved broader discussions around my experience and technical decisions:- A brief discussion on my projects.
- Justification for using particular technologies in my projects.
- How I implemented fallback mechanisms in my systems.
Interview Questions (17)
Find and Remove Loop in Linked List
How do you find a loop in a linked list? What is the follow-up to remove the loop from the linked list?
Check if Linked List is Palindrome
How do you check if a given linked list is a palindrome?
Singleton Design Pattern
Explain the Singleton design pattern and provide a code implementation for it.
OOPS Concepts
Explain Object-Oriented Programming (OOPS) concepts with examples.
String vs. StringBuffer
What are the differences between String and StringBuffer in Java?
Internal Working of HashMap
Explain the internal working mechanism of HashMap in Java.
SQL Queries (3rd Highest Salary, Joins)
Write SQL queries to find the 3rd highest salary. Also, discuss and provide examples for join-related questions.
SQL vs NoSQL
When would you choose a NoSQL database over a SQL database? Discuss the scenarios and reasons.
Find Starting Point of Loop in Linked List
How do you find the starting node (or entry point) of a loop in a linked list?
First Non-Repeating Character in String
Find the first non-repeating character in a given string.
Sort Squared Array
Given a sorted array, return a new array containing the squares of all numbers, also sorted in non-decreasing order.
Longest Common Prefix
Find the longest common prefix string amongst an array of strings.
Internal Working of HashMap and HashSet
Explain the internal working of both HashMap and HashSet in Java.
Handling High Incoming Requests
How would you design a system to handle a large number of incoming requests?
JVM Memory Areas
Explain the different memory areas within the Java Virtual Machine (JVM).
Technology Choices Justification
During project discussions, you may be asked to justify why you chose a particular technology or framework.
Fallback Mechanism Implementation
Explain how you have implemented a fallback mechanism in your previous projects or systems.