Bloomberg | Summer Internship 2021
Summary
I interviewed for a Summer Internship position at Bloomberg in 2021. The process included a phone interview, a virtual on-site round, and a system design round, covering C++/OOP, Data Structures & Algorithms, and System Design, but I was ultimately rejected.
Full Experience
I interviewed for a Software Engineering Intern position for Summer 2021 at Bloomberg, based in Pune, India. My background is in Electrical and Electronics Engineering from a Tier 1 college in India. The interview process consisted of three rounds.
Round 1 (Phone Interview): This round began with self-introductions, followed by C++/OOP questions. I was asked about static variables in C++ and their uses, and to explain virtual functions in detail, discussing their role in runtime polymorphism. Following these, I was given two DSA problems. For the first, which involved designing an address book with bidirectional search (by name and by number), I only had to describe the approach and data structures. I believe I suggested using maps and a Trie. For the second DSA problem, which asked me to extract strings from innermost brackets in a given string (e.g., ran(n(d))o(m()) → 'd', ''), I had to code the solution. I solved this by managing a depth variable and storing strings in an unordered_map<int, vector<string>>, returning strings at the maximum depth. I completed it quite quickly.
Round 2 (On-site Virtual): After introductions, this round included some HR-style questions, such as "Why Bloomberg?" Then, I was given a DSA problem, which was Design Underground System on LeetCode. Fortunately, I had solved this problem before, so I explained my approach thoroughly while coding it. After coding, we discussed edge cases, like potential integer overflows.
Round 3 (System Design): This final round was with a senior manager and began with introductions and a discussion about my resume. Despite having no prior experience with system design, I was asked to design an e-commerce website. It was an open-ended discussion, and the interviewer seemed satisfied with my final design.
Verdict: I was ultimately rejected. The feedback indicated that my primary reason for rejection was in the System Design round; I was moving too quickly between different components and needed to explain each component in more depth before proceeding to the next.
Interview Questions (7)
Explain what static variables are in C++ and discuss their typical use cases.
Explain in detail what virtual functions are in C++ and why they are used. Discuss their role in achieving runtime polymorphism.
You are given a list of names with their phone numbers. You need to design an address book that supports the following searches efficiently:
- Search via name (Return phone number)
- Search via number (Return name)
Given a string containing characters and always matched brackets, print all strings that are enclosed within the innermost brackets.
Example: If the input is ran(n(d))o(m()), the expected output is 'd', ''.
Explain your motivations for wanting to work at Bloomberg.
Design the architecture for an e-commerce website.