Attended the phone interview. about 50 mins of interview. Started off asking about questions from my resume. Then some questions as discussed earlier in glassdoor. Like using hash table, then a question on trie. He asked some questions in Unix commands, OOps concepts and how I have used it personally.Finally a question on implementing square root function: - what will be the signature, then implementation. I gave him a O(n) detailing first and said it can be optimized with divide and conquer method and gave another alternative as well. Then he asked how would the test cases look like. Gave answer for that also. He said pretty good and dat was it!
I believed that I would get a call for the next round, as the entire interview was smooth and he was happy with the answer which I provided. But guess what, got a REJECT! can't feel worse than that at that moment. They said they cant give reasons as to why I was not selected and asked to apply next year. Their Loss, I say...
Interview questions [1]
Question 1
Nothing difficult, UNIX command for listing all files containing a certain string. Square-root function. How abstract method and interface differs and how I have used them personally etc..
I applied online. The process took 4 weeks. I interviewed at Bloomberg (New York, NY)
Interview
Submitted Resume through their website. Setup a time over email for phone interview. Got an email 3 days later for New York interview. At their HQs it's 2 people interview you for an hour then another 2 people interview you the next hour. Programming questions were good/fair. There wasn't really any room to talk about anything else at all except answer their programming questions. Which I guess makes sense if they just want to see that you know how to solve problems properly.
Interview questions [1]
Question 1
unsorted integer array size n.
unmodifiable list of "less than" / "greater than" operators.
place elements from int array in between each "<" and ">" operator so that every comparison holds true.
e.g.
6, 2, 8, 1, 3, 9, 4, 0, 5, 7
<, >, <, <, <, >, <, >, >
answer:
0 < 9 > 1 < 2 < 3 < 8 > 4 < 7 > 6 > 5
class A{ void foo(); }
class B{void foo1(); }
class C {void foo1(); }
Design like below:
B.foo1() can access A.foo(), but C.foo1() can not access A.foo()