Obtained role through a recruitment agent, with whom I set salary, bonus and role expectations up front. He said 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. Somewhat leftfield questions such as "what's a segfault?", "What's a bus error?", "What's the twos complement of minus 1?", along with questions about pointers, references, STL containers, constructors, destructors, etc. Was told that the role was not within this interviewer's team but another team.
Second interview, face-to-face, two developers. Questions about hashtables, pointers, how to implement a smart pointer, copy constructor for a smart pointer (hint: int* ref_count in your smart pointer wrapper), write some code to generate sequence of prime numbers. 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, another developer then with regional head/hiring manager. Asked questions about designing a chat server, how to cope with connections going down, lots of other stuff, 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 met with 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. Lots 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, lengthy discussion of permanent vs. contracting (they really seem to hate contractors there), discussed salary expectations, previous compensation, etc. No warning flags raised. Meet global head after waiting 35 minutes past the time he was supposed to meet me in reception - no apology, no explanation. Discover that global head is essentially junior to me - started in the industry after I did, 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.