Status: SDE2 at Microsoft
Years of Experience: 2 years 3 months
Process: I applied directly on Bloomberg website for suitable roles. HR responded back after a month.
[Phone Screen] (1 hour)
Behavioural (10 mins): Tell me about yourself. Why Bloomberg? etc
DS/Algo (50 mins): Leetcode-Candy-Crush-1D
Solved in about 30 mins. Then discussed a few concepts of String data structure in java and String vs StringBuilder.
[Round 1 - DS/Algo] (1 hour)
Solved it using DFS. Faced network connectivity issues and frequent dropouts. I was able to code properly and somehow explain the solution.
[Round 2 - DS/Algo] (1 hour)
A TV show is termed as “addictive” if the viewers quickly become addicted to the show and end up watching all the episodes. We need to find how quickly the users become addicted to the show. It can be tracked after viewing how many episodes of a show at least 70% of the viewers who watched that continued to finish the show entirely. In other words, more that 70% of the viewers who watched the first x eposides of a show continued to finish the entire show. The x is what we are looking for.
For e.g.
Episode Count
1 40
2 36
3 31
…
7 14
….
10 10
Here the answer is episode 7 as 10/14*100 is more than 70%!
Assumptions:
Given a log of entries consisting of a user id, the show name and the episode number that was watched, produce the x for each show.
Input Function: void process_log(string show, int episode, int user_id);
Output Function: print_results();
Took me around 10 mins to understand the question itself. After proper understanding, it was easy enough to solve. Just store the count for each show->episode based on users in a hashMap and use it for calculation in print_results(). Follow-ups were easy to discuss and provide solutions. 1st one can be solved using binary search if the number of episodes is very huge. Second follow-up is almost similar to the main question.
[Round 3 - Design] (1 hour)
[Round 4 - Hiring Manager] (1 hour)
[Round 5 - Senior Recruiter Behavioural] (30 mins)
Kindof a rapid fire round where the recruiter asked a lot of HR questions and recorded my answers.
Overall Feedback: Phone interview and all DS/Algo rounds were good. Discussion around garbage collection did not go very well. Interviewers wanted to understand more about my work at Microsoft but did not get that. Could have had hiring manager round better.
Personal Comment: Most of the interview experiences suggest that you need a bit of luck to clear Bloomberg. I specifically asked the recruiter if there will be language specific questions - she said no. Yet, I was asked on Java and C++. Bloomberg will favour candidates with C++ and financial background. All the algorithmic questions were from Bloomberg leetcode questions or interview experiences. I would advice focusing more on behavioural interviews and practicing them.