Bloomberg | Intern SWE | London [Offered]
Summary
I successfully applied for the Bloomberg 2025 Software Engineering Summer Internship in November and received an offer in March after completing multiple interview stages including technical coding, system design, HR, and engineering manager discussions.
Full Experience
Bloomberg 2025 Software Engineering Summer Internship
Applied through their website's job listing in November. After multiple stages, a few delays and rescheduled interviews, I received my offer in March.
University: Top 120 QS World Rankings
Status: 1 year of intern experience @ Swiss Bank
Position: SWE Intern
Location: London, United Kingdom
1. Technical Intro Interview (60 Minutes)
- The first half hour of this intro involved asking me about my background and experience, things I had on my CV, and why I had applied for the position.
- The second half was assesing my approach to a question very similar to Problem 1941; with an extra rule added during the interview after my original solution to increase the complexity slightly. I had to explain my approach in terms of time complexity and display knowledge of data structures.
- Problem_Description []
Create a function that returns true or false
depending on whether the string passed in is
valid or not.
A string is valid if all characters have an equal
number of occurrences within it.
You may also remove one character from the string
to make it valid.
</code><br/><br/>2. Technical Coding Interview (60 Minutes)<br/> - This interview was purely technical, with a much larger focus on Big Oh notation and time complexities. I was tasked with ensuring that the entire system ran at O(1), and to ignore memory.<br/> - <code>Problem_Description []
Create a lottery storage system that would allow you to add,
remove and pick participants. This storage system must run
at O(1) and participants must be picked at random.
Functions to implement:
void LotterySystem() - Create Lottery object
boolean addParticipant(int id) - Add a participant (Unique id)
return true when successfully added
return false if they cannot
be added
boolean removeParticipant(int id) - Remove a participant (Unique id)
return true when successfully removed
return false if they could not
be removed
int randomPick() - Randomly select a lottery winner and return
their ID.
Return -1 if there are no participants left.
</code><br/> - I was also briefly questioned on my knowledge of JUnit testing, and what approaches to take to ensure such the system works as intended.<br/><br/>3. Technical Design Interview (60 Minutes)<br/> - During this interview I was tasked with designing a system that allows users to look at a real-time stock price feed for a specific stock, view the history of prices for that stock and more. (Helpful reading in relation to this can be found on harshsavasil's medium article [can't link due to discuss rules])<br/><br/>4. HR Interview (30 Minutes)<br/> - Asked about my ambitions, why I want to work at Bloomberg, how I approach working alone and with a team, and more. Completely avoided technical questions but drew from my CV. A lot of discussion relating to Bloomberg's values and philanthropic efforts was held here.<br/><br/>5. Engineering Manager Interview (60 Minutes)<br/> - This was similar to the HR Interview, they asked about my background and experience, delving deeper into the technical elements, and my interests into software engineering specifically as a career path.<br/><br/>Overall, I had a positive experience in my application process, although one interview felt very off as the interviewer seemed disinterested in the process. On a positive note, the campus recruitment team were very communicative throughout the process, and I look forward to joining the company for the summer.
Interview Questions (5)
Create a function that returns true or false depending on whether the string passed in is valid or not.
A string is valid if all characters have an equal number of occurrences within it. You may also remove one character from the string to make it valid.
Create a lottery storage system that would allow you to add, remove and pick participants. This storage system must run at O(1) and participants must be picked at random.
Functions to implement: void LotterySystem() - Create Lottery object boolean addParticipant(int id) - Add a participant (Unique id) return true when successfully added return false if they cannot be added boolean removeParticipant(int id) - Remove a participant (Unique id) return true when successfully removed return false if they could not be removed int randomPick() - Randomly select a lottery winner and return their ID. Return -1 if there are no participants left.
Design a system that allows users to look at a real-time stock price feed for a specific stock, view the history of prices for that stock and more.
Asked about my ambitions, why I want to work at Bloomberg, how I approach working alone and with a team, and more. Completely avoided technical questions but drew from my CV. A lot of discussion relating to Bloomberg's values and philanthropic efforts was held here.
This was similar to the HR Interview, they asked about my background and experience, delving deeper into the technical elements, and my interests into software engineering specifically as a career path.
Preparation Tips
My advice to those preparing for applications to this company would be to have confidence in speaking on your experiences and research Bloomberg and what they are up to, then align on how and why you would fit into their workplace culture.