I am a PhD student in Civil Engineering. I have experiences in software development and quantitative (statistics, operations research, machine learning) modeling.
I met the recruiting team at the career fair in my university and submitted my resume. They were hosting on-campus interviews for selected candidates in October, which I wasn't invited . Shortly after I got a email to go through a phone screen. The phone interview was delayed to mid November due to Sandy, but it was quite easy and I was invited to the onsite interview. The onsite interview has 4 rounds:
First round was a 2:1 interview. Interviewers spent 3~ 6 years at the company. They asked 3 technical questions besides the usual resume questions
1. Reverse the order of words in a string. e.g. "I am Chinese" to "Chinese am I". I gave a slight variant to the textbook answer. They made me check every type of input to confirm the correctness.
2. Find the intersection of two very large (10^6 elements) integer arrays. I gave them the hashing answer first and then they demanded an in-place method. Took 1~2 minutes to figure it out: sorting + binary search. I think they are pretty happy at this point to pass me to the next round.
3. (To kill time) Generate all the combination of a set of size n, whose elements can take k distinct values. Think of it as outputting natural numbers in base k.
Second round was also a 2:1 interview with similar interviewers. They asked 2 technical questions:
1. Generate the siblings of every node in a tree. I gave them a native recursive method which is not even fully coded, but they found it acceptable.
2. Generate the browsing history of a web-browsers in the sequence they were visited. For duplicated visits, only print out the most recent occurrence. There are a lot of ways to do this, but they wanted one with constant time complexity (except for the printing phase). They gave me a lot of hints before I finally figure it out. This question seems original so I will not disclose the details.
Third round was a 1:1 interview with a senior member (15+ years in the company). He asked me motivational questions (see below) and then a regular technical question to generate anagrams.
Last round was with 2 HR ladies who asked a lot of soft questions to gauge my motivations and fit for the company.
Had a good feeling for all interview rounds and received an offer the next mourning.
Overall based on my interactions with those people I think Bloomberg is a great company to work for. The biggest takeaway is that the culture of this company feels much more like a financial firm (aggressive, committed) than a typical technology firm (nerdy, innovative) . You need to think carefully whether this is the kind of culture you want to be part of.
On the other hand, Bloomberg is the only major tech company I know who are willing to provide comprehensive trainings for non-CS students. If you want a career shift from an alternative science/engineering background, Bloomberg may be one of the best opportunities.