I was contacted by Morgan Stanley HR for a requirement in their strata team which builds software for the MS trading platform. (Very high traffic from all the share markets with lots of real-time data processing, availability, and consistency are both mandatory.) Each round is 30 minutes. First round: (Interviewer was from London, A Cambridge graduate, A veteran in technology with 14 years in Morgan Stanley).
Second round: 30 minutes, from the Hongkong office. - Introduction. - Question: In an API, how we can optimize the way to send a large amount of data in an efficient manner? The API efficiency relies upon the size of data being sent in the response. Data being sent is a stream of numbers, in sorted order i.e. 1,1,1,1,1,1,1,1,1,2,2,9,9, 13,13,13,..... . - What things you look for while reviewing a PR? What are multiple things to optimize the code. - Their product overview, codebase overview, internal tech stack glance. - Discussion about how things work there inside Morgan Stanley, and Context about what the responsibilities of the Strata team and use cases. - Some more questions, I don't remember those now. But This round went really well. The interviewer was completely satisfied.
Verdict: The second round was positive. Waiting for the third round. Total there will be 5 rounds. 3 more to go.
Edit: Third round: (30 minutes) London office. It was with the global head of the team managing all the teams for strata across the globe. - Introduced himself and the team and how things are connected between all the teams across the various regions, and what's the tech stack they have been using, and the number of people in the team. - Asked about my background, project, tech stack, and particularly the reason why I am interested in moving towards the finance domain tech. - Aware about any finance-related terminologies? What's a bond? (I could make some answer for this only) Type of bonds? (No answer). - The favorite languages I have worked on. I mentioned Java, PHP, JavaScript but he saw Python on my resume in my college project. - Difference between tuple and list and their use cases. - Type of data we can store inside a tuple and list. - What things do you see to optimize first in an application for a better user experience. I mentioned - Space and Time. - He asked among tuple and list, which one is more memory efficient and time efficient and how? - Asked about how memory allocation is done for list and tuple. I had only basic knowledge of tuple and list, so he was digging more and more. - Asked if I am knowledge of numpy? I said no, then he asked for java. - Asked what is method overloading and overriding in java? - Public and private specifier in java and their use cases with an example. - Any questions?
Fourth round: (30 minutes) Luxemberg Office.
Fifth Round: 30 minutes (Budapest Office) - Introduced himself and talked about team structure. - Brain teaser: - There are 7 people, there is a dice with 6 faces. We need to pick a loser with a roll of dice. How to pick? Follow up: Suppose there is a cost of rolling a dice, so have to pick the loser with minimum rolls of dice. - Computer Science question: - Two arrays, find the intersection of the arrays. I came up with O(n^2), then optimized that with hashset in O(n). - Follow up: What if both arrays are sorted. I mentioned a solution similar to merge two arrays in merge sort with time O(m+n), and constant space. - Follow up: What if the one array is significantly larger than the other, suppose one array has 1 million elements, and the other one has only 20. I mentioned - Do a binary search for each of the 20 elements that comes down to O(20 log 1 million) complexity. - Any questions.