In North American Tech circles,Bloomberg He has always been considered an "extraordinary". It does not follow the FAANG route of brushing questions and rolling in, but New Grad’s TC is at $170k–$200k all year round, and WLB is also relatively stable. Many people fail when asked about Bloomberg. It’s not because they don’t know the questions, but because they don’t get the assessment points right. OOD has a very high weight, and the splitting, naming and responsibility boundaries of classes will be scrutinized; Think Aloud is a mandatory requirement, and points will be deducted directly if you just write it but don't explain it. There are often variations on the questions, and the interviewer will ask about concurrency, exception handling, and data consistency. A USC CS Master student we assisted last week was stuck once with this system. Later, he adjusted to the Bloomberg style system and passed the Phone Screen successfully the second time. The key points are summarized below for reference by students preparing for Bloomberg 2026 NG.
Reappearance of the real question: Design Underground System (surface Medium, actual OOD)
Title description (highly restored):
Design a subway system that supports:
- Passengers entering the station
CheckIn(id, station, time) - Passengers leaving the station
CheckOut(id, station, time) - Query the average travel time from any starting point to an ending point
GetAverageTime(start, end)
Hidden requirements in Bloomberg interviews:
- NeedClearly distinguish between "real-time status" and "historical statistics"
- Need to be ableOral discussion of concurrency and exception scenarios(even if the code is not written)
- NeedIndustrial grade naming and structure, instead of brushing the question writing method
Common rollover points include:
- Use a Map to stuff all the data, and the logic quickly gets out of control.
- Forgot to handle duplicate check-in / illegal check-out
- I can’t explain why it is O(1)
Architecture core: Double HashMap decoupling (Bloomberg’s favorite)
The key to this question is not the algorithm, but the Data modeling.
Design principles
- Single Responsibility:
- A structure is only responsible for the "current itinerary"
- One structure is only responsible for "historical statistics"
- Write-Optimized: Bloomberg is more concerned about writing efficiency and stability
Data structure disassembly
Check_in_map:- Key:userId
- Value:
(startStation, startTime) - Responsibilities: only means "current itinerary"
Route_stats:- Key:
(startStation, endStation) - Value:
[totalTime, tripCount] - Responsibility: Only make statistics, no individual information is stored
- Key:
In a real interview, you can say: “I intentionally decouple in-flight trips from historical aggregates to keep responsibilities clean.” Impression is filled directly.
High-quality implementation (Python, you can go directly to Review for interviews)
class UndergroundSystem:
def __init__(self):
# id -> (start_station, start_time)
self.check_in_map = {}
# (start_station, end_station) -> [total_time, trip_count]
self.route_stats = {}
def checkIn(self, id: int, stationName: str, t: int) -> None:
# In production, we might validate duplicate check-ins
self.check_in_map[id] = (stationName, t)
def checkOut(self, id: int, stationName: str, t: int) -> None:
if id not in self.check_in_map:
# Defensive coding: invalid checkout
return
start_station, start_time = self.check_in_map.pop(id)
route_key = (start_station, stationName)
duration = t - start_time
if route_key not in self.route_stats:
self.route_stats[route_key] = [0, 0]
self.route_stats[route_key][0] += duration
self.route_stats[route_key][1] += 1
def getAverageTime(self, startStation: str, endStation: str) -> float:
route_key = (startStation, endStation)
if route_key not in self.route_stats:
return 0.0
total_time, count = self.route_stats[route_key]
return total_time / count
Why does this version of the code "look like it was written by a Bloomberg engineer"?
- Naming is documentation: No additional explanation of variable meaning is required
- O(1) full coverage: All interfaces are Hash lookup
- Predictable state: Ghost data will not appear
Interviewer Follow-up high-frequency questioning (90% bonus points)
If you stop after writing the code, there is a high probability that it is just Neutral.
Q1: What if it is a multi-threaded environment?
Answer direction:
- Python can be mentioned
Lock/ Java can be mentionedConcurrentHashMap - Or explain: The write operation requires atomicity, and the read operation can have eventual consistency.
Q2: Why not use a database?
Standard vocabulary:
- Interview Scene Highlights In-memory latency
- The data size and access pattern are suitable for HashMap
- Persistence is a system-level extension, not the core of this question
Q3: What if the number of stations is quite large?
Bonus points:
- Site pairs are sparse
- Only record the actual route
The value of ProgramHelp: not “helping you write”, but “helping you live”
Many people will say:
"I've already passed this question."
But what the Bloomberg interview really eliminates is:
- People who don’t know how to design
- People who express breakdown under stress
What we do in practice is not ghostwriting, but:
- Real-time reminder of whether the OOD structure deviates
- Instantly correct English expressions and technical terms
- Provide words that can be directly repeated in the Follow-up session
What you present to the interviewer is:
Engineers with clear ideas and mature expressions, like "becoming a full-time employee one year in advance"
The last sincere words
When an offer of $180k+ is placed in front of you, the really expensive thing is never the coaching fee, but the opportunity cost missed due to an expression error.
If you don’t want to take the “naked exam” at OOD-heavy companies like Bloomberg, Meta, and Apple, ProgramHelp Our expert team has cleared all the pitfalls for you.
You just need to make the right choice at the critical moment.