Had two round interview... first round was very straightforward, asked typical data structure, graph search, and object oriented questions (linked lists, depth first search, memoization, classes). Second round was much harder, with algorithmically complicated coding problems (the naive solution was usually easy, but the interviewer would then press on for a much more difficult solution)
Interview questions [1]
Question 1
Counting the number of anagrams of one string in another string
I applied online. The process took 2 months. I interviewed at Bloomberg (New York, NY) in Jun 2014
Interview
From the online application (bloomberg website) to the phone interview took around 4 weeks (a first interview was scheduled within 2 weeks but the interviewer didn't call so we rescheduled). The phone interview was quite straightforward and I was asked the following questions
1- Kind of a strange question. Generate all 3-digit combinations of 1-9 but not repeats in the sense that if you have 123, then 231, 321, etc. are not allowed. [nested for loops]
2- Reverse a given sentence (no use of library methods, arbitrary spaces between words). Make it faster. [start at the end and find and print words one-by-one].
3- You are given a 3L and a 5L container and unlimited supply of water. How to make 1L?[I found a longer solution but the short on is pour 3L into 5 twice.]
4- A program/algorithm which given mL and nL buckets figures out how (if possible) make kL. [we discussed the solution and the interviewer was nice and gave me a hint. Its a DP problem].
The next day, I received and invitation for on-site interview. The travel schedule part was straightforward and convenient.
I was invited to the NY office. There was a group of around 30 people like me. They hold you for a few minuts to issue a security badge. Then there is a tour about all the 31 or so aquariums and fishes at bloomberg. Eventually, there is breakfast and then the interviews come find you. There is 4 rounds of interview. Rounds 1-2 are technical, 3 is management, and 4 is HR.
Some questions I remember:
1- Find shortest path on a chessboard from low left corner to top right. You can move right and top only and some cells are inaccessible (DFS).
2- You have sorted arrays A and B with sizes m and n. Assume at the end of array "A" you have "n" empty slots. How to merge with minimum number of operations (start at the end instead of beginning). Prove it works (induction).
3- Some runners running in a field with some "k" sensors. We get events of runnings locations. How to print the top "m" runners? (array of lists or hash table of lists depending on the location of the sensors. each list is one sensor). Some questions on how to identify the ordering within each list.
4- CPU Cache implementation. How to implement the least frequently used procedure.
5- Scheduling some jobs over "m" servers. Centralized vs distributed implementation? How to implement.
The management interview was interesting and I liked the two managers. HR was fine too. I did not do any negotiations.
Interview questions [1]
Question 1
The chessboard problem. I first mentioned BFS and use of a Queue but the interviewer kept asking about some data structure with less memory that I could extract due to the simple structure of the graph. I did not understand what he meant. I eventually mentioned DFS and proved it works uses less memory.
The cache problem took a long time. I kind of though I failed it at some point. I had no prior knowledge of the topic since I am not a CS guy. I eventually, used an array to store the access time to different items and O(n) search through it to find the least frequently used one. The interviewer did not raise the complexity. He wanted me to write code on a paper (which is hard, esp. in C).
I applied online. The process took 2 weeks. I interviewed at Bloomberg (Londra, Inghilterra)
Interview
It started with some questions about Bloomberg, why I choose this company. Then it went on with some personal details I had on my CV. Then asked about technical questions including C pointers, heap, stack, memory allocation and malloc. Also about Java JVM, garbage collector, inheritance. The interviewer was very friendly.