Applied on 7/27 and was asked for a non-technical phone screener with HR the next day. After speaking with HR, we determined a specific team I would be best suited for.
Then I applied specifically for this new team within Bloomberg. Received a request for a technical phone/code pair (Hackerrank) interview for 8/17. Due to scheduling conflicts, the technical round was moved to 8/18. I was asked about my background and then to solve this problem (in any language): Given two arrays of sorted integers where array A is large enough to fit all elements in both array A and array B, how would you merge the two arrays together in sorted order? (Hint: Double pointers starting at the last element in each array)
After the first technical, I was invited to an onsite interview in NYC on 8/30. Bloomberg was kind enough to pay for airfare, hotel stay (Manhattan->one night), and corporate taxi (airport->hotel). Each technical round onsite involved two senior engineers.
1st Round (Hackerrank - Any language): Maximize stocks values where you must:
-- Buy before you sell
-- Index of input array is the day of stock price
-- Return maximum profit and index of buy/sell
-- (Optional) Think about short selling (selling before you buy)
2nd Round (Hackerrank - Any language): Given a string, remove all matches of 3 or more consecutive chars (Candy Crush style)
-- i.e. ABBBCC - > ACC
-- i.e. ABBCCCB -> A
Theoretical: Design a Browser History log that holds up to n logs
-- No duplicates (duplicate moves to top of list)
-- Implement using list (i.e. queue to hold history) for fast and easy reordering (i.e. addition/removal) (simple pointer reassignments)
-- Implement using hashmap for fast lookup to see if duplicates exist (key -> URL, value -> pointer to index in list)
-- Handle if browser history reaches max n logs
After the two technical rounds, I was escorted out of the building and treated to lunch with two other engineers. At this point I knew I was not going to the final rounds with HR as they took my security badge on the way out.