I obtained the role through a recruitment agent, with whom I set salary, bonus, and role expectations upfront. He stated that the total compensation numbers we were discussing were fine and that he had communicated them to the client.
First telephone interview, lasting 45 minutes. It included somewhat left-field questions such as "what's a segfault?", "What's a bus error?", "What's the two's complement of minus 1?", along with questions about pointers, references, STL containers, constructors, and destructors. I was told that the role was not within this interviewer's team but another team.
Second interview, face-to-face, with two developers. Questions were asked about hashtables, pointers, how to implement a smart pointer, and the copy constructor for a smart pointer (hint: int* ref_count in your smart pointer wrapper). I was asked to write some code to generate a sequence of prime numbers. I was again told that the role was not within this interviewer's team but another team. Neither developer had apparently worked anywhere other than Bloomberg.
Third face-to-face interview, with another developer, then with the regional head/hiring manager. Questions were asked about designing a chat server, how to cope with connections going down, and many other topics. I wrote some code to increment a variable using a pre-defined interlocked_exchange implementation. The interviewer was quite unclear whether he wanted an implementation of interlocked_exchange or something else. Eventually, he explained that he wanted me to use it like a library function. The answer is therefore to call interlocked_exchange in a while loop until you get back a true result. Then I met with the hiring manager, who again had never worked anywhere other than Bloomberg. Within the first 90 seconds, he'd said, "I don't normally interview people who have been contractors," which I took as rather odd since by this time I'd done over three hours of interviewing with them. There was a lot of discussion about why I might want a permanent role. Eventually, we talked about the job, although he wasn't entirely clear about what I'd actually be doing, and then right at the end of the interview, he said, "I have another role that might be suitable for you - you'll have to come back and meet someone else, and the global head is coming over, you can meet him."
Fourth face-to-face interview, forty-five minutes with HR. Again, there was a lengthy discussion of permanent versus contracting (they really seem to dislike contractors there). We discussed salary expectations and previous compensation, etc. No warning flags were raised. I met the global head after waiting 35 minutes past the time he was supposed to meet me in reception – with no apology and no explanation. I discovered that the global head was essentially junior to me – he started in the industry after I did and has never worked anywhere but Bloomberg (can you see the pattern forming?). At this point, I started to have significant worries about the seniority of the role, given that I would be two levels below a guy who could easily be working for me.
The whole process took over a month to get through.
Two's complement of minus one... I haven't needed that in over 20 years.
The following metrics were computed from 1 interview experience for the Bloomberg LP C++ Developer In Fixed Income role in London, United Kingdom.
Bloomberg LP's interview process for their C++ Developer In Fixed Income roles in London, the United Kingdom is extremely selective, failing the vast majority of engineers.
Candidates reported having very negative feelings for Bloomberg LP's C++ Developer In Fixed Income interview process in London, United Kingdom.