Hey LeetCoders!
I would like to thank LeetCode and the entire community for making my interview preparation fun, engaging, and efficient, and I hope that this post proves to be of value to you all!
My interview process at Bloomberg consisted of three coding rounds (one being the initial video coding interview and the other two being the technical virtual-onsites) and one HR and Senior Lead Engineering Manager round. All the coding rounds began with a brief discussion on the projects and work experience listed on my Resume, followed by coding questions. Here is the breakdown of each coding round:
Initial Round: 1-D Candy Crush. I would suggest going through "Remove Duplicates In String One" and "Remove Duplicates In String Two" as I found the question extrememly similar to these two. The follow-up was solving the same problem in constant space. The interviewer just wanted to hear my thought process but I was able to write the code as well.
Virtual On-Site Round One: The first coding problem went something like this - You're given a 2-D grid of alphabets/letters in no specific order, in the sense that the first row could contain the elements "a", "b", "b", "c", "z" and the second row could contain the elements: "a", "m", "p", "b", "g", and so on........ You have to return which alphabet/letter occupies the largest 'chunk' of area. You don't have to consider diagonal pairings as a connected chunk (so essentially up, down, left, and right connections). I would suggest going through "The Number Of Islands" and all such related problems. For the second coding problem, I don't remember the exact problem statement but it was a slight modification to the "Move Zeroes" problem wherein, instead of zeroes, you have to shift all the odd numbers to the begining of the array while maintaining their initial relative order.
Virtual On-Site Round Two: The coding problem for this round went something like this: You're given a Map containing a string of length 6 as the key and a decimal number as the value. For example: {USDCAD : 6.90} could be one Key-Value Pair in the Map. The Keys in the Map represent currencies and the Values represent the exchange rate ratios pertaining to their respective currencies. So, the above example could be interpreted as USD -> CAD => 6.9. You will also be given another string of length 6 as an input (For Example: "USDMEX"). The problem statement was, given the Map and the string, determine the exchange rate ratio represented by the input string, and if it does not exist, then return -1. So, say for example, if you're given the following string: "CADUSD", then looking at the above mentioned Key-Value pair, the answer for this particular string should be 1 / 6.9. And let's say in addition to the above mentioned Key-Value Pair, you also have the following mapping: {"CADMEX" : 4.20}, and you're given the following input string: "USDMEX", then for this particular case, the exchange rate ratio to be returned would be 6.90 * 4.20. I know that was a mouthful but I hope it was clear..........!
Final HR and Senior Lead Engineering Manager Round had two phases: One hour with HR and one hour with the Senior Lead Engineering Manager, which I believe was mainly for the interviewer to gauge my knowledge and understanding of Software Systems. The HR Round consisted of general behavioral questions and the Engineering Manager Round consisted of in-depth technical discussions wherein we spoke at length about my past projects and any relevant work experience, which was followed by me asking them the questions that I had regarding Software Engineering at Bloomberg!
All in all, I would say that it was an amazing experience and that all the interviewers were very friendly and we had great conversations! Again, I'm extremely grateful for this platform and the entire community, and I hope that this post was helpful. Cheers and All The Best to Everyone! :)