Bloomberg | Software Engineer Intern | London | 2020 [Pending]
Anonymous User
3925

Phone Interview

Virtual Onsite Part 1 - Algo

What: 1-1.5 hour interview with camera. 2 interviewers! 1-2 coding problems.
When: end of November
Log:

  1. Interviewers introduced themselves

  2. Me introduced myself
    a. my internships/working experience
    b. why Bloomberg?
    c. Most challenging project/task

  3. Coding problem: Design Underground System
    I have already solved this problem before the interview, because I solved the top 20 problems by frequency with the tag Bloomberg. But the description of the problem is very open-ended, so most of the time was spent on clarifying the API, creating and justifying data structures, and handling exceptions.

    • Follow up questions:
      a. What is the runtime & space complexity? Some additional questions e.g "What is the memory complexity if you have M stations? + explain how much data will be in each storage(hashmap) in the worst case", "Decrease the number of calls of hashmap operations".
      b. Suppose the situation that in a real system you have one thread. Everything worked correctly for a week, and then it began to show strange results. What happened? (Overflow) What ways of solving this problem do you know?
      c. Questions about the keys in the hashmap for this task + internals of hashmaps(basics)
  4. I asked them questions about Bloomberg.

Interviewers were very friendly, chatty, supportive, and interested. Everything went great and two days later I received positive feedback.
General tip: solve top by the frequency problems with tag Bloomberg.

Virtual Onsite Part 2 - System Design

What: 1-1.5 hour interview with camera. 1 interviewer. 1 system design question.
When: end of December.
Log:

  1. Interviewer introduced himself

  2. Me introduced myself
    a. my internships/working experience
    b. why Bloomberg?
    c. What makes me unique? What do I consider my best quality in programming?
    d. How does my current employer assess my performance?

  3. System design question. The same as here but without any algo tasks, only system design.
    I started with the notification system, clarified the protocols for communicating with the client, API, how often notifications should be sent.
    Then I drew a high-level structure of the system, divided everything into services, explained which service would be responsible for what.
    After, before generating notifications service, I added an aggregator and began to describe its functionality, structure, possible algorithms / data structures and alternatives.
    During each step, the interviewer asked many questions, reasons, clarifications, and possible alternatives. But I kind of answered everything.
    Finally, I got into caching and scaling. Added local / distributed caches; explained where I will scale horizontally, where vertically; explained where it is better to use which storage; where I would do replication where not.
    At this step, the interviewer became very active and asked about the failure situations of almost every part in turn. In some part, I even got stumped because I noticed that my proposed solution was overengineering, but then I started from the beginning and found a simple solution. I think this "deadlock" even became an advantage for me.

  4. I asked him questions about Bloomberg.

The interviewer was friendly but significantly less interested and chatty. At some point, I even thought that I had failed the interview. But most likely he was just not in the mood or tired. Of course, I made a lot of mistakes because it was my first system design interview, but nevertheless, I kept the structure and I am satisfied with myself. Of the main mistakes, I would like to highlight the fact that I did not specify the amount of data, although it was clear what a lot and what a little.
The next day I received positive feedback and an invitation to the final non-technical interview.

Help materials for this task: general structure + aggregator moments, notification system

Comments (7)