HackTheRounds Interview Experiences
Bloomberg Software Engineer Virtual Onsite Interview Experience (2025) - Offer
Bloomberg VO with four rounds covering coding problems on time series, order book data structures, a system design round for a market data fanout, and a behavio
By Anonymous ยท 2025-11-14
Background
Bloomberg has quietly become one of the more interesting SWE destinations on the East Coast. The pay is competitive, the domain is real (actual financial data, actual latency requirements), and the engineering culture leans pragmatic rather than performative. I am a backend engineer with four years at a mid-sized fintech, applied cold through the Bloomberg careers portal for a generalist SWE role on an order-data team, and went through a virtual onsite in late 2025. This write-up is focused on the VO because I did not get an explicit OA, and the recruiter screen was just a scheduling call.
Timeline
- Week 0: Cold application, recruiter reply within a week
- Week 1: 20-minute logistics call with the recruiter
- Week 3: Virtual onsite, four rounds over two days
- Week 5: Offer call
Total: about 5 weeks from application to offer.
Virtual Onsite (4 rounds)
Bloomberg structures each round as roughly 5 minutes of introductions, 35 minutes of coding or design, and 5 minutes at the end for my questions. Two rounds on day one, two on day two. The editor is Bloomberg's own CoderPad-style environment with compile-and-run for most languages; I used Python.
Round 1: Coding - Financial Data Stream Top K
Problem: Incoming stream of trade events shaped like (product name, volume) arrive throughout the trading day. Support two queries: return the top K products by volume as of the end of the day, and return the top K products by volume in real time at any point during the day.
I split the two query types deliberately because they have different shapes. End-of-day top K is a one-shot offline problem: aggregate into a hashmap, then either sort or use quickselect to pull the top K. For real-time top K I kept a running hashmap of product to running volume and a size-K min-heap indexed by volume, with a lazy-deletion scheme so that when a product's volume changed I pushed the new entry and let stale entries get discarded on pop. The interviewer pushed on the memory footprint of lazy deletion and I talked through the worst case and why in practice it stays bounded by product cardinality.
Then he asked about concurrency: what happens when the ingest thread and the query thread touch the heap at the same time? I described a lock-free approach using a snapshot read on the hashmap plus a periodic rebuild of the heap, which he seemed to prefer over a coarse-grained lock.
is a simpler streaming-style problem on the platform, and the mental model transfers.
Round 2: Coding - Consecutive Element Elimination
Problem: One-dimensional Candy Crush. Given an array of integers, repeatedly remove runs of three or more consecutive equal elements until no more runs exist. Return the final array.
I solved this with a stack of (value, count) pairs. Walk the input, and for each element either increment the top of the stack if it matches or push a new pair. When the top count reaches three or more, pop it. One pass, O(N) time and space. The interviewer asked for the variant where you need to remove runs of exactly length K and I adjusted the pop condition. He also asked about a follow-up where the removal cascades, meaning after popping, two previously non-adjacent runs might now combine; the stack handles that naturally because popping exposes the previous top, and if it matches the new top of what remains, the next iteration merges them.
[[problem/498?company=11|Consecutive Element Elimination (Candy Crush)]] is the exact problem.
Round 3: System Design - Market Data Fanout
Problem: Design a service that receives market data updates from upstream exchanges and fans them out to tens of thousands of internal subscribers, each with their own filter on symbols and event types.
This was the longest round and the one that felt most distinctively Bloomberg. I started with the ingestion side: a bank of feed handlers consuming directly from exchange protocols, normalizing into a canonical event schema, and publishing to a set of topic partitions keyed by symbol. The fanout layer was a set of subscription routers that kept per-client filter state and pushed matching events over persistent connections. The interviewer pushed on filter efficiency, specifically how I would evaluate tens of thousands of subscriber filters per incoming event without doing N-squared work. I described an inverted index from symbol to interested subscribers plus a bitmap for event-type filters, so that each incoming event narrows the candidate set in two lookups.
Then he pushed on backpressure. What happens when one subscriber is slow? I talked through per-subscriber bounded queues, a conflation policy for quotes (keep only the latest), and a disconnect-then-reconnect flow for subscribers who fall too far behind. He was happy with conflation for quotes but pushed me on why conflation is wrong for trades, and we talked about the difference between state updates and event log semantics.
The last ten minutes were about durability and replay. I described a replay log indexed by sequence number per partition and a subscriber-side checkpoint so that clients could reconnect and catch up from their last confirmed sequence.
is an analytics problem on the platform that uses similar partitioning intuition on the read side.
Round 4: Coding plus Behavioral - Binary Tree Right View and Fit Questions
Problem: Binary tree right side view. Given a binary tree, return the nodes visible from the right side, top to bottom.
A level-order traversal where I kept only the last node at each level. I wrote it iteratively with a queue and a level counter, got it compiling, and added a couple of my own test cases including a degenerate left-skewed tree. The interviewer then asked me to walk through my logic manually on a tree with seven nodes, which I did on the shared whiteboard tool. No bugs, which he commented on positively.
The behavioral portion took the second half. Four questions stood out. Why Bloomberg, which I answered with a specific product I had interacted with as a user and a specific team direction I was excited about. Most interesting project, which I told with a clear conflict-and-resolution arc. Two things I look for in a new job, where I led with technical depth and team quality over compensation. And finally, what had I learned about Bloomberg from my earlier rounds, which was the one I had not expected but which worked well because I had been paying attention to what my interviewers said about their teams.
[[problem/501?company=11|Moon Rover Maximum Distance]] and are both on-platform problems that share the one-pass greedy flavor that shows up across Bloomberg loops.
Result
Offer came about eleven days after the onsite. The recruiter called, walked through the numbers, and gave me two weeks to decide. I negotiated an equity refresh structure and a sign-on, and accepted.
Tips
- Bloomberg coding rounds favor data-structure design over pure algorithms. The Top K streaming round, the insertion-order O(1) CRUD round, the Candy Crush stack round. They all care about how you model the data, not just whether you can run DFS. Drill the structure-design patterns specifically.
- OOP fluency shows up outside of the OOD round. Interviewers ask about Python versus Java versus JavaScript OOP semantics as a warm-up. Have a clear answer on method resolution, inheritance models, and what "private" means in each language.
- System design rounds are market-data flavored. Fanout, subscriptions, replay, conflation, backpressure. The URL shortener and chat-app prep is not wrong but it is not enough. Read about pub-sub systems and about how Bloomberg's Terminal architecturally distributes data.
- Manual code simulation is a real step. On two of the coding rounds the interviewer asked me to walk through my code manually on specific inputs. Practice this out loud before the loop because it feels awkward the first time.
- Have a specific "why Bloomberg" answer. The recruiter, the hiring manager, and the behavioral round all asked some version of it. Generic "because financial data is interesting" answers do not land. Pick a product, a team direction, or an engineering problem you can speak to concretely.
- Behavioral rounds reward active listening. The "what did you learn from earlier rounds today" question surfaced in my loop and in at least two of my friends' loops. Take notes between rounds.