Bloomberg | Interview Experience | Senior Software Engineer - 4+ YOE | NYC | Nov 2025
Senior Software EngineerBloomberg | July 2022 | Offer Accepted
Bloomberg | Summer Internship 2021
Software Engineering InternBloomberg | SWE Summer Internship | London | 2021
software engineer summer internshipSummary
I interviewed for a Senior Software Engineer position at Bloomberg in November 2025, undergoing several technical rounds. Unfortunately, I did not receive an offer to proceed further, but I am sharing the problems I encountered to assist others in their preparation.
Full Experience
My interview process for the Senior Software Engineer role at Bloomberg consisted of multiple rounds. The first round, lasting 60 minutes, focused on an algorithmic problem. Following this, I had a second 90-minute round that presented two distinct coding challenges. Finally, I participated in a 90-minute system design round. Despite my efforts, I did not receive an offer.
Interview Questions (4)
Design a web application capable of supporting user onboarding, password reset, requesting company information, and IT help requests. The system requires independent deployments. It's critical to ensure all requests are authenticated and validated, especially since highly sensitive financial information is being handled. The discussion covered trade-offs between various technologies and concepts:
- Databases (SQL vs. NoSQL, focusing on ACID and CAP theorems)
- Load balancing
- Caching strategies
- Blue/green deployments
- API gateways
- Cloud vs. on-premise infrastructure
- Considerations for reliability, scalability, and security
Summary
I successfully landed an offer at Bloomberg after extensive preparation, leveraging LeetCode and specific Bloomberg resources. The interview process was straightforward, covering data structures, algorithms, system design, and behavioral questions, with a focus on problem variations.
Full Experience
I had been diligently preparing for interviews since October 2020, and I must say, this platform and its community were instrumental in helping me secure an amazing offer at Bloomberg. It feels right to share my journey.
My interview process began with a Phone Interview. We discussed the longest substring without repeating characters, which I solved quite quickly. I noticed that many problems were variations of common themes, but always approachable. We also had a system design overview of an LRU cache; there was no coding, just a detailed discussion of the problem and my approach.
The Interview Day consisted of two main sessions. In the first interview, I tackled two questions: first, finding all unique subsets, and then immediately followed by finding unique subsets with duplicates included in the input. The second interview also featured two questions. I was asked to design a data structure for O(1) insert/delete/getRandom operations. The next question involved stock ticking, which had similarities to a leaderboard design problem. I also had a behavioral interview, which was seamless—I just focused on being myself and taking it easy.
Finally, I interviewed with a Senior Engineer. As an ML/AI engineer, we spent a significant amount of time discussing my prior experience. Surprisingly, the engineer presented me with the two sum problem, but we explored every possible variation, nearly five similar questions under the two sum umbrella. They wanted me to articulate my code line-by-line.
I managed to code almost every question perfectly, except for the stock ticking problem. I admit, I psyched myself out a bit, even though I knew a hashmap/priority queue approach was my best bet. I believe I navigated this question successfully by communicating my best solution, even though I was a bit stumped on the exact syntax implementation. It's crucial to remember that you can always ask if you can look something up; I completely forgot I had that option! I was elated to receive the offer, especially after struggling slightly with that stock ticking problem.
Interview Questions (7)
Design and implement a Least Recently Used (LRU) cache. It should support get and put operations. The get(key) method should retrieve the value of the key if it exists, otherwise return -1. The put(key, value) method should insert or update the value. If the number of keys exceeds the capacity from this operation, it should invalidate the least recently used key before inserting a new item.
I was asked a stock ticking problem, which is conceptually similar to designing a leaderboard. It involves processing real-time stock price updates and maintaining some form of aggregate data or ranking, potentially requiring efficient updates and queries.
Preparation Tips
My primary resources included the official Bloomberg Prep List and Phone Interview List available on LeetCode. I also utilized a comprehensive Cohesive Notion List and extensively practiced problems tagged with 'Bloomberg' on LeetCode. Additionally, I found it beneficial to switch up my study methods by watching YouTube explanations of problems, practicing basic data structures on Codecademy, and reviewing algorithms on Programiz to keep my brain engaged and avoid burnout.
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.
Summary
I successfully completed two rounds of interviews for a Software Engineer Summer Internship at Bloomberg in London, which included coding challenges on data structures, algorithms, and a system design problem. I received positive feedback and have been invited for a final system architecture interview.
Full Experience
Hello everyone, I am sharing my interview experience with Bloomberg for the "Software Engineer - 2021 Summer Internship - London" position. I believe this experience could also be relevant for entry-level or new grad roles. After applying online, a recruiter reached out to me to schedule a phone interview with one of Bloomberg's software engineers.
First Round (Phone)
The interviewer called me precisely on time. He started by introducing himself and the team he works with, then gave me time to introduce myself. Following this, he directed me to a HackerRank link provided by the recruiter for the coding challenge.
The first question asked was to find the first non-repeating character in a string. My initial approach involved a two-pass traversal using either a hashmap or a fixed array for character counting, and I made sure to explain the trade-offs between these two options. A follow-up question then challenged me: "What if the string was very long? How could I optimize the solution?" In response, I introduced a one-pass solution, suggesting either using an extra field within the hashmap to store the first index where the character was seen, or leveraging a linked hashmap. The interviewer seemed satisfied with both of my proposed solutions.
He didn't ask me to compile the code but rather to trace it and discuss its complexity. Towards the end, he gave me an opportunity to ask questions about the company or anything else on my mind.
After three days, I received positive feedback from the recruiter, inviting me to virtual on-site interviews.
Second Round (Virtual Onsite)
This round was a video interview conducted with two Bloomberg Software Engineers. We exchanged introductions, and then they provided a HackerRank link for the coding challenges.
The first question was to Validate a BST. I discussed an in-order traversal "like" approach, presenting both recursive and iterative solutions. I then proceeded to write the code for the recursive approach. They did not ask me to compile it; we focused on discussing its complexity.
The second question was to Design an Underground System. Before diving into the solution, I asked for clarification on whether the system was directed or undirected. One of the interviewers seemed quite pleased with this question and clarified that it was directed. I then discussed my approach, which involved using hashmaps and some C++ Structs. I explained the solution's complexity and clarified special cases, such as handling division by zero. Again, they seemed content with my explanation and did not ask me to compile the code.
Three days later, I again received positive feedback from the recruiter, inviting me to a system architecture interview with one of their senior software engineers. This is where I currently am in the process.
Interview Questions (3)
Preparation Tips
Based on my experience, I strongly advise focusing on LeetCode questions for preparation. Specifically, I found it very beneficial to practice questions tagged for Bloomberg, as all the questions I received were Bloomberg-tagged LeetCode problems.