Bloomberg London | New Grad 2021 | Feb 2021 [Offer]
Anonymous User
5246

Background

Education: New grad, BEng CS, Top 10 School in Asia

Position: Software Engineer New Grad 2021

Internship experience: Summer internship x2 (no big name, one was at a fast-growing hedge fund)

Overall Interview Experience

  • The overall experience was very pleasant
  • All interviews were conducted through video calls
  • All questions are very standard
  • HR was quick to give updates (within 1-2 working days)
  • Interviewers can be a bit cold at first but quickly warm-up once I showed competence

Application

A recruiter reached out through LinkedIn. Applied through Bloomberg's web page and received an invitation to interview a few days later.

First Coding Round (Nov)

There were two questions for each round. Was not expected to run the code and the syntax did not have to be perfect. I typed up all my solutions in Python.

Interviewer: Software Engineer x1

The first question is a variation of https://leetcode.com/problems/consecutive-characters/

The second question is https://leetcode.com/problems/number-of-islands/

Second Coding Round (Dec)

Interviewers: Software Engineer x2

The first question is https://leetcode.com/problems/design-underground-system/

The second question is https://leetcode.com/problems/populating-next-right-pointers-in-each-node/

Thoughts on the Coding Round:

  • I usually started with describing my full solutions first, then move on to coding it up.
  • I sometimes have minor bugs here and there, but spotted them almost instantly once the interview hinted at them.
  • I was a bit slow with coding up the second question during the first round, but stayed calm and explained my thought process all the way through. I think this is very important in all technical interviews. You don't have to come up with the perfect solution right away, but you need to have a plan to progress in a systematic way.
  • The interviewer always asked about the space and time complexity for each question. The interviewer also asked to "prove" the correctness for the last question ("explain why the algorithm must process the nodes exactly from left to right").
  • Overall, the questions are very fair and standard. You would be fine as long as you have a clear understanding of the basic data structures and algorithms. You should also be prepared to analyze your solution for the time and space complexity, and correctness. For this, I think what had helped me the most was NOT LeetCode grinding but the algorithm course I took at school that involved a lot of proof-writing.

System Design Round (Jan)

The interviewer was a senior engineer. The problem was to design a platform where users can download videos to watch. Moreover, the service should be able to

  • remember what the users had watched
  • track the users' viewing progress
  • recommend videos to both new and existing users

This was the trickiest round because I wasn't sure what to expect. I prepared by reading https://github.com/donnemartin/system-design-primer and watching some tutorials on YouTube. Though beware that some tutorials focus too much on choosing an implementation/protocol and "scaling" the system. Based on my interviewer's reaction, I would suggest don't bother with discussing a particular implementation and scaling early on. Just focus on coming up with a design that could fit inside a single machine. Then, you can start to discuss how to improve performance within that single machine, for example by introducing a cache. Only after that, should you start considering scaling with multiple machines and (optionally) showing off your knowledge about different solutions available on the market.

Another important thing is not to shy from discussing a requirement. Do ask questions like "how often should we update the data", "how accurate should the data be". Don't get too excited with trying to come up with a watertight solution immediately, since it may not even be necessary for the given scenario and would just serve to over-complicate things. I think this round is not only about your technical skills, but also to show that you would consider other collaborator's perspective and can communicate effectively.

Edit

could you share more details on how you approached the systems design question?

I started with identifying what data has to be persistent, then describe the database schema. E.g. there obviously should be a USER table with user_id, watched_video_ids; similarly, there should be a VIDEO table. Next, I listed out some important APIs to provide. E.g. there should be a Login API, Recommendation API, Download API, etc. Then, because I was very nervious, I drew a very ugly and crude system design diagram that includes the usual things like data storage, API, and arrows connecting things together.

Luckily, at this point, the interviewer started taking over by asking a lot of questions based on what I had said. So I just had to focused on answering them. Some of the questions asked:

  • How does your Recommendation system works?
  • You mentioned pre-computing a list of recommended videos based on the users viewing history. But there could be millions of users and tens of thousands of videos. Do you store an ordered list of all videos for each users? Do you foresee any problem with this approach?
  • How do you handle unstable internet connections when the user is downloading a video?

Behavioral Round (Feb)

There were two interviewers, one from HR and one was a senior engineer. No technical questions. Very typical behavioral questions like "what would you do if you and your coworker have different opinions on how to solve a problem", "why Bloomberg". Was also asked about any competing offers.

Received an email two working days later that they would like to extend an offer.

Compensation

Base salary: £73,000
Relocation bonus: £7,000
Bonus: £3,000

Did not negotiate; no competing offer. I actually didn't even apply anywhere else. I always thought I weren't good enough for this kind of place since I'm just an average Joe with a mediocre GPA. Please don't make my mistake. GPA isn't everything. Believe in yourself and go for it!

Comments (7)