Morgan Stanley Interview Experience | On Campus FTE 2021 for Technology Analyst Role
Morgan Stanley visited our college on 2nd September 2020. Since this was done in the covid era, everything was virtual.
First Round – Online Test: The online test consisted of 3 sections, each done separately and in order. We cannot navigate to another section before completing the current section.
The first section consisted of basic aptitude questions (around 15), to be done in 20 minutes.
Second section was debugging section. In this section, basically we were given a code description and its code, which contained some error(s) (usually logical). We needed to correct it and pass all test cases. We needed to choose a language beforehand for this section, the code will be given in this language. The languages available were C, C++, Java, etc. I chose C. This was a fairly easy section. 20 minutes were given for around 7-8 questions.
Third section was the coding section consisting of three questions. I forgot all the questions, but they were easy if you’re really good at coding, and at worst medium. I did first one full, and the other two partial.
Second coding question was given different sources of electricity, each with different power p and load l. Each power source can be from company A or company B, If it was from company A, it can be directly selected, however if it was from company B, it can only be selected as a pair with another source from company B. Given a maximum capacity load L, what is the maximum power that can be obtained?
Third coding question was given initial charge C and distance D. To travel a unit distance, we need 1 unit of charge. At certain points at distance less than D, we get extra charge. There were m such points. We needed to calculate the minimum number of points we need to take extra charge at, such that we can reach distance D.
Example: C =5 D =20 , points are (5,5), (2,7), (3,10), (7,13) where each pair is (extra charge, distance at which extra charge is available). So we can take (5,5), (3,10),(7,13) to reach D =20. So minimum = 3.
15 students were shortlisted from way too many people in this round for the interviews.
Interview Round – 1(Technical) : Interviews were conducted via zoom.The round started quite late as interviewers were taking longer than their stipulated time in each of the interviews. Mine was slotted at 9:45 AM but it started at 12:00 PM. It started with my introduction. After that he switched to my top most project in resume, which was a networking project (Validating implementation of TCP-BIC in ns-3 using ns-3 DCE). I explained my project and he asked a few counter questions, which I answered. Then, he asked me my strongest suit. I answered DSA. He asked me to code how to reverse a string recursively. I shared my screen and coded on notepad. I firstly tried to do it using string and index, but he stopped me to tell he wanted recursion only using string. Then I changed my approach a bit and coded it. Then he asked various questions on it, like time complexity, total number of strings generated for a string of size n. It took some time but I finally managed to convince him on my answer. After that he jumped to OOPS. He asked me all the different aspects of OOPS, which I explained. Then he asked about virtual functions, how, why were they used in C++. I explained it to him. Then he switched to OS. He asked me about virtual memory, paging, why it is used. I explained it in a very detailed manner. The round went for around an hour.
8 students survived this round. We were at the last bastion.
Interview Round -2(HR+Technical): There was no news of the schedule of the next round, so I decided to take a quick nap. When I woke up at 5:30 PM, I saw that I was told to join at 5 PM. I quickly joined thinking I was late, however I was told to wait. Then the HR came first at 7:30 PM. He asked me to again introduce myself. Then he asked me my strengths, achievements. Finally he asked why should we hire you – the classic and cliched question. However, I had totally not prepared for HR – a fatal mistake. I tried to list my achievements again to prove my competence, but it did not seem like he was convinced. After the HR, I was told to wait. The round went for about 20 minutes.
Then the next technical round started at 8 PM with another interviewer. Started with the formality of introductions, then he also asked me about OOPS concepts, which I had blabbered about in the first round. After that he gave me a OOPS design question, which then became a system design question. He asked me to make a software which emulates Zoom calls. I thought about it for a few seconds. After that I told him I will keep 3 classes, user, organizer and room. User needs to register, room is created when an organizer calls organize meeting function, organizer basically extends user because organizer was basically a special user who organized meetings. He added various constraints after this. He first told me that now the number of rooms were limited and weren’t virtual, how will I re-write organizer’s code to meet with this demand. I told him since rooms are limited and numbered, we can have a database that keeps the rooms and whether they are free. Also, it will store other things like when it is engaged, etc. Next requirement was that when organizer organizes a meeting, he should keep a list of users that are mandatorily required and some users whose attendance is optional for the meeting. I again suggested a database where users’s availability is stored. I suggested that whenever organizer submits a list of users, the function will automatically check in the database whether the users are free. He then asked me whether I want to give access to the database to every user, won’t that affect security? After some thought, I told him we can keep a database administrator or manager who checks for availability on organizer’s behalf. Now the function would just send the list of users to manager, he’ll check and return true or false based on whether mandatorily required users are free or not. Now his requirement changed to scalability of my approach. He asked me – consider there is a user, like the PM, who gets a lot of requests from organizers. Do you really want to access the database every time his PA receives a request? I thought about it, then suggested we can opt for primary indexing of user’s availability database, which we can do because userid is primary key, and can be kept in sorted fashion. He agreed with me on the aspect that this will take lesser time, but he asked – can I think of a better approach since even though access time is lesser now, we still need to access the database again and again. I then suggested we can use cache. He again reiterated that we will still need to go in the system. So I suggested to keep a cache at server level, such that frequently requested users can be processed at server itself. Now that I introduced the concept of servers, he asked me how much servers would I want to place. I answered it will depend on the traffic that the software receives. If its a lot of requests, I suggested keeping a server in each state of India, however if its lesser, we can keep 4-5 at major cities only – I assumed that software is limited to India. At this point, the actual organizer of the zoom meeting came in and told us its time as it was now past 9 PM. The interviewer told him to wait, he was in the middle of an interesting discussion. At this point, I smiled but didn’t assume anything. Then, finally he asked me – suppose I have a lot of servers in various places like Tokyo, Bangalore, California, how would I decide, to which server should I send my request? I tried suggesting scheduling algorithms, but he denied and told me to concentrate and think more, but I wasn’t able to think of a solution that satisfied him. He then ended the interview, I finally asked him what approach he wanted for the last question. Then he said he wanted routing as the approach. There, again I started suggesting using TTL header bit in IP header to deal with better routing, to which he agreed. Then, my interview finally ended. The round went for around 75 minutes.
Finally 1 student was selected for FTE, 2 for spring internships (who would be given FTE after their internships, I guess). I wasn’t one of them. I fell at the last bastion. Not the only time though, I gave 8 interviews before I was finally selected.
Try to be prepared beforehand for the placement season, GeeksforGeeks will be your biggest messiah. You might need to refer to other resources as well like maybe GATE notes or Ravindrababu Ravula videos for OS, CN, DBMS, some HR questions, aptitude from Indiabix(if needed). Also, research about the company before attending its interview. I think your seniors or peers would have provided you other advices,