I applied online after finishing my undergrad. They did not reply me for more than a month, so I asked my friend to refer me and then things moved quickly. I was contacted directly by hiring manager. I gave IBM's IQ test and then decided the date to do a phone interview with hiring manager. In phone interview, I was asked bit manipulation question, reverse a single linked list and anagram questions. It was about 45 mins interview with all tech question. I knew all the questions and had them practiced before hand so I did pretty well. During the phone interview, I was told that I'm selected for on-site interview. I choose to give on-site interview monday of next week. I had about 3 days to prepare, I did not choose to wait longer because I did not have job that time. It was 5.5 hours of on-site interview which included 4 interviews and 1 lunch interview. lunch interview was not counted in selection process. There were 3 tech interviews and 1 manager interview. Each 1 hour long, in manager interview I was asked behavior questions and other standard easy HR questions. Job was related to compiler so they asked me lot of low level questions including reduce the cache contention in matrix multiplication and etc. Some of the coding question were:
1. Find 2^n without using any airthemetic operator. 1 >> n
2. Find double of a number without using airthmetic and lots lots of bit manipulation questions.
2. Reduce cache contention in given code. Code was matrix multiplication algorithm.
3. Explain in pseudo code, how overriding a functions in OOO languages work. And is overriding function resolved at compile time? And how about function overloading?
4. Write a function that takes two unsigned int and returns true if multiplication of these two integers will be overflow (means number exceed limit of sizeof(unsigned int) bytes) otherwise returns false.
5. Design stack using single linked list.
6. Given an array of positive and negative ints , find an continuous subarray with maximum sum. On first try I was able to write an algorithm with o(1) space and o(n) time complexity so he was happy.
7. Write a basic hashing algorithm (then he asked my why I did this way and how can I improve). And some theory about has functions.
If you applying in compiler department be sure to prepare bit manip questions and know some basic things of compilers like parsing, linking, how compiled languages different from interpreted ones, how 32 bit compiled program diff from 64 bit and other basic stuff.