Background: Electrical and Electronics Engineering, from Tier 1 college (IIT/BITS) in India.
Position: Software Engineering Intern, 2021 - Pune, India
Round 1 (Phone Interview):
Phone interview began with a small introduction about myself followed by the interviewer. Then interviewer without any delay started with C++/OOP Questions:
Then she gave me 1 DSA problem and asked not to code, just tell the best approach you can have at this, what data structures will you use and what will be its time complexity. The question was something like this (I don't remember the exact question):
You are given a list of names with their phone numbers, you've to make an address book. Following searches can be made in this address book:
* Search via name (Return phone number)
* Search via number (Return name)I don't exactly remember how I solved it at that time, I think I used map and trie data structure and explained the time complexity. She was more or less satisfied and we moved to the next part.
Now, I was given another DSA Problem and was asked to explain the approach and then code it and run all testcases. Problem:
Given a string containing brackets (always matched) and characters, print all strings which are there in the innermost brackets. eg: If input is ran(n(d))o(m()),
print 'd', ''.It was fairly easy and was able to solve it in around 10 minutes including writing code. I maintained a depth variable and stored the items for each depth in unordered_map<int,vector<string>> map. And returned all the strings with max depth.
Round 2 (On-site Virtual):
This round began with similar introduction from both sides. After that they asked some HR type questions like "Why Bloomberg". Then they gave me 1 DSA Problem, exactly this: https://leetcode.com/problems/design-underground-system/. I had already solved this before and hence knew the solution beforehand, solved this slowly while explaining my approach to interviewers. After coding, they then asked my few edge cases like what will you do if int overflowed etc etc.
Round 3 (System Design) :
This round was with senior manager and it started with introduction from both ends, then discussion on resume. After that he began with a design problem (I had 0 experience with system design before):
Design an ecommerce website.
It was more of an open ended discussion and he said he was satisfied with the final design.
Final verdict: Rejected. In the feedback they mentioned that the reason for rejection was that during System Design round, I was moving too quickly beween several components. I could've explained the current component in depth before moving to the next component. :")
All the best!