HackTheRounds Interview Experiences
Bloomberg Software Engineer VO Interview Experience (2026) - First Unique Word, TV Retention, Tesla Equity OOD, Offer
Bloomberg 2026 SWE VO loop: phone screen with First Unique Word and Count Vowel Substrings, VO1 TV show retention, VO2 Tesla equity O(1) OOD with median follow
By Anonymous ยท 2026-04-17
Background
Bloomberg's onsite loop draws from a remarkably consistent question bank that cycles every year or two, and the only way to really prepare is to map the bank against your own weaknesses. I recently went through the 2026 SWE loop in the New York office, targeting the Terminal Engineering org, and this post is my attempt at a candid walkthrough of every coding question I was actually asked across the loop, plus the ones my friends in the same cohort saw. I had 3 years of professional experience on a platform team before this, and I had failed a Bloomberg phone screen two years ago on the Candy Crush problem. That failure is a big part of why I prepped the way I did.
Timeline
- Applied through referral: early March
- Phone screen: 10 days later
- VO1 and VO2: 3 weeks after phone screen, back to back in one morning
- HR behavioral: next day
- EM round with system design: 4 days after HR
- Offer call: 2 days after EM round
Total: 6 weeks.
Phone Screen (45 min)
Two coding problems, straightforward. The screener was a senior engineer on the pricing infra team.
Problem 1: First unique word in a stream
Problem: You are given a stream of lowercase-letter words (separated by spaces) arriving in chunks. At any point, return the first word in the stream that has occurred exactly once so far, or an empty result if every word seen has been repeated.
Standard hash-map plus linked-list pattern. Maintain a count map of word frequencies, plus a doubly linked list of candidates in arrival order. On each new word, if the count goes from 0 to 1, append it to the linked list. If it goes from 1 to 2, remove it from the list (O(1) with a map from word to list node). The head of the list is always the first unique word. Each query is O(1).
I used a dict plus an ordered structure in Python. The interviewer asked what breaks if we need the "last unique word" instead. Same structure, return the tail rather than the head. That is the kind of follow-up Bloomberg reuses.
Practice it: [[problem/502?company=11|First Unique Word in String]]
Problem 2: Count vowel substrings
Problem: Given a lowercase string, count the contiguous substrings that contain all five vowels (a, e, i, o, u) at least once and contain no consonant characters. LeetCode 2062 variant.
Sliding window with a running vowel-count set. Expand the right pointer as long as the character is a vowel. When the window contains all five vowels, every extension at the left that still keeps all five visible is a valid substring, so count accordingly. When you hit a consonant, reset the window. O(n) time.
I solved it in 12 minutes. Interviewer skipped the follow-up and moved to behavioral chat, which I took as a good signal.
VO1 (60 min)
Self-intro plus behavioral plus 35 minutes of coding. The Bloomberg behavioral questions are short, so do not over-rehearse STAR beyond two or three core stories.
Round 1: TV show user retention
Problem: A TV show has 10 episodes. Users may drop off after each episode. Given the per-episode retained user counts, return the earliest episode number n such that at least 70 percent of the users still watching at episode n will go on to finish all 10. If no such n exists, return -1.
This is a suffix-ratio problem. Compute the ratio retained[9] / retained[n] for each candidate n , and return the smallest n where this ratio is at least 0.7. The brute-force O(10) scan is fine because there are only 10 episodes, but the interviewer wanted me to remove the explicit if branch in the inner check. I rewrote it using multiplication rather than division to avoid the branch and the floating-point rounding: retained[9] 10 = retained[n] 7 .
Follow-ups: what if every user drops off at episode 1 (return -1 without divide-by-zero), and what if every user watches all 10 (return 1 immediately). Both fall out of the multiplicative form cleanly.
Practice it: [[problem/499?company=11|TV Show User Retention Analysis]]
VO2 (60 min)
Coding plus OOD. This was the round that decided the loop for me.
Round 2: Tesla equity price service
Problem: Design an in-memory price tracking system for a single equity. A Trader can add a new daily price or remove the latest posted price. An Analyst can query the latest price, the maximum price ever posted, and the average price across all posted prices. Every operation must be O(1).
The operation set maps cleanly onto two stacks plus a running sum and count for the average. Primary stack holds prices in posting order; a parallel max-stack tracks the running maximum up to that point so that a remove operation pops the max-stack in sync. The running sum and count give O(1) average.
The interviewer then asked for a median query on the same service. That is the classic two-heap pattern (max-heap on the lower half, min-heap on the upper half, balanced within one element). I walked through the balancing rule verbally without coding it. The interviewer accepted the sketch and moved into the OOD half.
OOD part: split the design into Equity, Trader, and Analyst classes. The Equity owns the storage primitives, Trader exposes write-side operations, Analyst exposes read-side operations. The interviewer wanted to see encapsulation (no public fields on Equity) and the observer pattern for a "price changed" notification to Analyst consumers. I did not have to write code for the full class layout, just sketch it and defend the boundaries.
Other problems from the current Bloomberg bank
These are problems my three loopmates saw in the same week. Worth prepping if you have a Bloomberg loop coming:
- Consecutive Element Elimination, aka 1D Candy Crush. Classic stack-plus-counter problem, reduce runs of the same character iteratively. This is the one I failed two years ago. Prep it specifically.
- Minimum removal of invalid parentheses. BFS or one-pass greedy with two counters.
- LRU Cache. Hash map plus doubly linked list. Bloomberg asks for the full implementation including node removal from the middle, not just a call trace.
- Decode String. Stack of (count, partial string) pairs, push on bracket open, pop and repeat on bracket close.
- Flatten a Multilevel Doubly Linked List. Recursive or stack-based unwinding.
- Reconstruct Itinerary. Hierholzer with a priority queue on destinations.
- Word Break II. Memoized DP returning lists of strings.
- Binary Tree Right Side View. BFS per level, keep the last node seen.
- Word Search. DFS with backtracking and visited marking.
System Design and Behavioral (45 min)
Combined round with the hiring manager. System design first, behavioral second.
Design prompt was "build a real-time Top-K products-by-volume service for an electronic exchange that also returns Top-K at the end of day." I led with a bucketed aggregation approach: per-minute counts in a rolling window, sketch-based (count-min) approximation for the streaming Top-K, and a persisted batch job for the end-of-day deterministic Top-K. The interviewer pushed on memory-constrained aggregation specifically, which pointed me toward the reservoir plus approximate percentile angle.
Behavioral was three prompts: why Bloomberg, what did you learn from previous interviews, and two things you look for when applying to jobs. Short answers, concrete examples.
Result
Offer landed two days after the EM round. Compensation came in at the top of the band for the level, and the HR contact was specific about the desk match, which I appreciated.
Tips
- Prep the Candy Crush 1D problem specifically. It has been in the Bloomberg bank for at least four years. It is not hard, but the O(n) stack-plus-counter version is the accepted solution and the naive repeated-scan version will TLE.
- For the TV retention problem, rewrite ratios as multiplications. Floating-point comparison of ratios will fail the edge-case tests that zero-out denominators. Multiplication sidesteps the divide-by-zero and the float drift.
- The Tesla equity problem wants two stacks, not a sorted structure. Candidates over-engineer this with a balanced BST. Two stacks plus running sum is O(1) per operation and is what the interviewer wants.
- Bloomberg OOD wants class boundary discipline. Expect a follow-up asking you to split the design into Trader/Analyst/Equity-style roles. Know the observer pattern and the reasoning behind encapsulation choices.
- For the Top-K system design, distinguish streaming from batch. Streaming approximation (count-min, heavy hitters) vs end-of-day batch (sort plus head). Muddling the two is the single most common failure mode on this round.
- Behavioral is short. Do not force a full STAR. Bloomberg's behavioral prompts are 2-minute capped and the interviewers cut you off if you run long. Have 30-second openers and 60-second climaxes ready for each core story.