Bloomberg is a financial, software, data, and media company. The Company provides financial software tools such as an analytics and equity trading platform, data services, and news to financial companies and organizations. Bloomberg serves customers worldwide.
Role and responsibility
- Take responsibility for the full software development life-cycle, from understanding the needs of the business through to coding, deployment and maintenance. Your work will be highly visible, making you highly accountable
- Enjoy solving highly complex problems while understanding the scope and impact of your work
- Be eager, resourceful, flexible, and an excellent collaborator. You will balance the best of technical and product knowledge to craft unsurpassed product solutions for our customers
- Engage with the wider community - from Inner Source to Open Source, you're someone who likes to collaborate
- 2+ years demonstrated experience programming in C++ or Python
- An aptitude for analytical problem solving
- Exposure to all phases of the software development life cycle
- A degree in computer science, computer engineering, or related is required
- Experience with other object-oriented programming languages
- Experience with multithreading
- Experience with high volume, high availability distributed systems
Bloomberg Software Engineer Salary
- Entry-level salary :USD 105,000.
- Senior positions: USD 257,000.
- Median salary: USD 165,000 with the base component being USD 120,000, stock component being USD 30,000 and bonus being USD 15,000.
Interview Process Overview
Usually, the interview process for the Software Engineer role at Bloomberg consists of 3 rounds as under:
- Recruiter Screen
- Video Conference Screen
- Onsite Round
The recruiter screen is a 45-minute interview with the hiring manager. Here, the interviewer is going to assess whether your experience and skill sets are a good match for the current job you’ve applied for. In other words, your cultural and experiential fit for the role & company will be tested. Most of the questions are going to be based on your previous experience/resume. So, be thorough with every word on your resume. Make it a point to keep answers short, crisp & structured. Some questions regarding your motivation for the role and company might also be asked. So, prepare some good points for these questions beforehand, especially the expected ones. One such question might be "Why Bloomberg?".
Once you have cleared the Recruiter Screen, you will proceed to the Video Conference Screen conducted via Nexi, Bloomberg's VC tool, with a Bloomberg Software Engineer. This interview will last for about 1 hour. The questions in this round are almost all technical. Questions in this round are going to be theoretical, conceptual, and will also involve some coding through a shared online editor.
Here are some important topics from which questions are asked in this round:
- Algorithm and Data Structures
- System Design
Most asked questions in the Phone Screen
- Given a two dimensional array arr[ ][ ] of dimensions N*2 which contains the starting and ending time for N meetings on a given day. Write a function to print the list of time slots during which the most number of concurrent meetings can be held.
- Write an iterator class to traverse a tree.
- Print an unbalanced binary tree in level order with new lines after each level.
- Write an efficient program to find the sum of contiguous subarray within a one-dimensional array of numbers which has the largest sum.
- If you had n racers and m checkpoints, how would you list out the racers in the order in which they are in the race given that each checkpoint gets a notification when a specific racer crosses it?
Algorithms and Data Structures
- What are the advantages of Insertion Sort over Merge Sort. Explain the best, average, and worst case time and memory complexity in each of these algorithms.
- Write an algorithm to check if two rectangles overlap each other.
- Write an algorithm to implement the Sieve of Eratosthenes for prime numbers.
- What is the difference between Comparison and Non-Comparison Sorting Algorithms?
- Tell me something about the Depth First Search Algorithm for a binary tree?
- How do you find all pairs of an integer array whose sum is equal to a given number?
- How do you check if a given linked list contains a cycle? How do you find the starting node of the cycle?
- How do you check if two strings are a rotation of each other?
- How do you find all permutations of a string?
- How would you reverse a singly linked list without recursion?
- How do you traverse a binary tree in post-order traversal without recursion?
- Design a ticket booking system with high availability.
- Design and implement a movie review system.
- Draw a technical architectural diagram of a ticketing system? Explain why you have done so? What DB would you use to serve it and why? What services would be real time, what would not be and why? Which data components will be in web service, and which would be stored in DB, and why?
- Can you design a system to collect data from IoT devices?
Schedule a mock interview to practice more such questions with a Bloomberg Software Engineer→ Book Now!
On clearing the phone screen, you will get a call for the onsite round. The onsite round for the Software Engineer role at Bloomberg consists of 4 interviews, each being an hour long.
The first 3 interviews are on coding, data structures, and system design respectively while the 4th and last one is a behavioral interview.
The coding interview will last for about 90 minutes, and is conducted by a Senior Software Engineer from Bloomberg. Prepare to write code. During the interview process you can indicate your preference for paper, whiteboard or laptop. You can answer questions in whatever language you’re most comfortable with, keeping in mind the role you’re interviewing for.
The behavioral interview is 1-hour long, and is conducted by senior managers from Bloomberg. This interview mainly aims to test a candidate's motivation for the role, leadership skills, and how good a fit they will be in the company. Interviewers may also ask a few questions related to other aspects of your personality. Questions are typically situation-based.
- Ask for help.
If you don’t understand something, ask for help or clarification. It’s better to ask questions before jumping into writing code.
- Verify it’s the correct assumption.
If you need to assume something, feel free to ask your interviewer if it is a correct assumption. When probed to provide a solution, first define and frame the problem as you see it. Describe how you would like to tackle solving each part of the question.
- Explain your thinking.
Don’t worry about finding the optimal solution, but let us know what you’re thinking. We will be just as interested in your thought process as in your solution.
- Listen carefully.
Be sure to listen carefully. Bloomberg engineers are always collaborating, so it’s important to hear and understand your interviewers, especially when they’re trying to assist you.
- For the onsite round, research Bloomberg and the role you are interviewing for well.
Most asked questions in the technical interviews (Onsite Round)
- Given an array of numbers, how would you go about writing an algorithm to find the sum of a certain subarray? Is it possible that we query an arbitrary number of times for the sum of any subarray? If we wanted to be able to update the array in between sum queries, what would be the optimal solution then? Describe the preprocessing and query complexity for each solution?
- Suppose, you have to design a scheduler that schedules a set of tasks. Some of the tasks would need to wait for some other tasks to complete prior to running themselves.
Write an algorithm that would design and implement such a scheduler.
- Given a set of date intervals represented by Start Date and End Date, how would you efficiently calculate the longest timespan covered by them? What will be the time complexity?
- Given a numeric array of length N, the task is to design a function that finds all positive numbers in the array that have their opposites in it as well. What approaches are possible for solving optimal worst case and optimal average case performance, respectively.
- How would you find the fourth element from the end in a linked list in one pass?
- Write a function to replace each element in an array with it's rank.
As the Bloomberg developer, your task at hand is to model the ride requestors as threads. Once an acceptable combination of riders is possible, threads are allowed to proceed to ride.
System design questions focus on front as well as back end design of software systems, and apps. It is important to understand the questions well, and cover all aspects of the design elements being asked.
- How would you explain the concept of lower latency interaction?
- Design a ride sharing service such as Ola.
- What do you understand about High Availability Design?
- Consider a lift lobby where people are waiting for the lift. Now when the lift arrives people get in irrespective of who came first. Thus, the person who came first keeps waiting and others keep getting in. Design a lift system which can solve the problem of this person.
- Design a Billing System for a Cloud based platform
Most asked questions in the Behavioral interview:
- Why do you want to work for Bloomberg?
- What is your best experience so far as a software engineer?
- Why do you want to pursue software engineering as a career?
- What professional hardships have you faced so far, and how did you overcome them?
So, this was a quick but exhaustive round-up of the Bloomberg Software Engineer interview process and prep strategies.
Hope you found this useful in your prep!