Bloomberg hires a lot of engineers, and its interview reflects that volume: array and string problems, a few well-worn design questions (LRU cache being the most famous), and typically two or more phone screens before the onsite. The difficulty skews easy-to-medium, but the bar is consistency — clean code, correct edge cases, and clear communication on every problem.
This guide covers five representative Bloomberg problems with worked Python, the multi-screen loop, and the habits that turn a competent solution into a strong hire signal.
The full interview process
| Stage | Format | Notes |
|---|---|---|
| Recruiter screen | 20-30 min | Background, team areas, logistics |
| Phone screen 1 | 45 min | 1-2 array/string problems, live coding |
| Phone screen 2 | 45 min | Harder problem or a design question |
| Onsite coding (2-3) | 45-60 min each | DS&A plus an OOD/design problem |
| Behavioral | 30-45 min | Why Bloomberg, teamwork, communication |
| Team match | Varies | Placement into a specific engineering group |
Problem 1: Two Sum (hash map)
Question: Given an array of integers and a target, return the indices of the two numbers that add up to the target.
The most-asked warm-up at Bloomberg phone screens. One pass with a hash map of value → index; for each number, check whether its complement has been seen.
def twoSum(nums, target):
seen = {}
for i, num in enumerate(nums):
if target - num in seen:
return [seen[target - num], i]
seen[num] = i
return []
Time O(n), space O(n). The junior answer is the O(n²) double loop; the one-pass hash map is what Bloomberg wants, and you should reach it immediately. State the complement insight out loud.
Problem 2: Valid Parentheses (stack)
Question: Given a string of '()[]{}' characters, determine if the brackets are validly matched and nested.
A stack problem: push opening brackets, and on a closing bracket verify it matches the most recent opening. Empty stack at the end means valid.
def isValid(s):
pairs = {')': '(', ']': '[', '}': '{'}
stack = []
for ch in s:
if ch in pairs:
if not stack or stack.pop() != pairs[ch]:
return False
else:
stack.append(ch)
return not stack
Time O(n), space O(n). The edge cases Bloomberg checks: a closing bracket with an empty stack, and a non-empty stack at the end (unclosed brackets). Handle both explicitly.
Problem 3: LRU Cache (design)
Question: Design a Least-Recently-Used cache with O(1) get and put.
Bloomberg's signature design question — expect it. A hash map for O(1) lookup plus a doubly linked list for recency order. OrderedDict works, but be ready to build the linked list by hand.
from collections import OrderedDict
class LRUCache:
def __init__(self, capacity):
self.cache = OrderedDict()
self.cap = capacity
def get(self, key):
if key not in self.cache:
return -1
self.cache.move_to_end(key)
return self.cache[key]
def put(self, key, value):
if key in self.cache:
self.cache.move_to_end(key)
self.cache[key] = value
if len(self.cache) > self.cap:
self.cache.popitem(last=False)
Both operations O(1). Bloomberg interviewers very often ask you to implement the doubly linked list manually to test fundamentals — practice the sentinel-node version so you're not improvising pointer surgery live.
Problem 4: Merge Intervals (sorting)
Question: Given a collection of intervals, merge all overlapping intervals.
Sort by start time, then sweep: if the current interval overlaps the last merged one, extend it; otherwise append a new interval.
def merge(intervals):
intervals.sort(key=lambda x: x[0])
merged = []
for start, end in intervals:
if merged and start <= merged[-1][1]:
merged[-1][1] = max(merged[-1][1], end)
else:
merged.append([start, end])
return merged
Time O(n log n) dominated by the sort, space O(n). The subtle bug candidates hit: using merged[-1][1] = end instead of max(...), which breaks when a fully-contained interval follows. Always take the max.
Patterns Bloomberg asks most
| Pattern | Frequency | Note |
|---|---|---|
| Arrays & strings | ~35% of loops | Higher share than most FAANG |
| Hash map / frequency | ~20% | Two sum, anagrams, counting |
| Stack / queue | ~15% | Parentheses, expression parsing |
| Design (LRU, iterators) | ~15% | LRU cache appears very often |
| Linked lists | ~10% | Reverse, detect cycle, merge |
| Trees / BFS-DFS | ~5% | Less common than at FAANG |
Common pitfalls specific to Bloomberg
- Underestimating the screens. Bloomberg runs two or more phone screens; treat each like an onsite round, not a formality.
- Not practicing LRU by hand. If you only know the
OrderedDictshortcut and they ask for the manual linked list, you'll stall. Drill the sentinel-node version. - Sloppy edge cases. Bloomberg's bar is consistency — empty inputs, single elements, and unbalanced brackets are explicitly checked.
- Weak 'why Bloomberg' answer. The behavioral round genuinely weights motivation and communication; have a specific, researched reason.
A 4-week prep plan for a Bloomberg loop
- Week 1: Arrays, strings, and hashing — the bulk of Bloomberg's bank. Solve 20 easy-to-medium problems for speed and clean code.
- Week 2: Stacks, queues, linked lists, and the design questions — implement LRU cache from scratch until it's automatic.
- Week 3: Timed mixed sets to build consistency; the Bloomberg bar is reliability across many problems, not one hard solve.
- Week 4: Behavioral prep (why Bloomberg, teamwork) and a solo mock.
Keep every round consistent with live AI support
CoPilot Interview surfaces structured solutions in about 4 seconds during real Zoom and Teams calls. Free for Windows and macOS, invisible on screen-share.
Download freeFAQ
What kinds of questions does Bloomberg ask?
Mostly array, string, and hash-map problems at the easy-to-medium level, plus classic design questions - LRU cache shows up very often. The difficulty is moderate; the bar is consistency and clean edge-case handling across many problems.
How many phone screens does Bloomberg have?
Often two or more before the onsite, which is more than most companies. Treat each as a full round - they're not warm-ups.
Does Bloomberg really ask LRU cache that often?
Yes - it's the most reliably reported Bloomberg design question. Practice both the OrderedDict version and a from-scratch doubly-linked-list implementation, because interviewers frequently ask for the manual version.
Is Bloomberg's coding interview easier than FAANG?
The individual problems skew easier, but the volume of screens and the emphasis on consistent, bug-free code mean the overall bar is real. You need to be reliable, not just capable of one hard solve.
Can I use AI to prep for Bloomberg?
Yes. CoPilot Interview returns optimal solutions with Big-O so you can drill arrays, strings, and the LRU design until they're automatic. Follow Bloomberg's interview rules during the live round.