Interview process for me (5 years experience candidate, 3.5 years in dev. role as C++ and about 2 years in Java ) for Application developer role:
Project Manager PM himself was arranging the interviews. Interview Panel seemed to be always busy with other priorities.
1) A coding challenge to be solved in any one of Java, Ruby or .Net in 3 days. ( Interesting problems, worth the time spent in solving it )
2) Code pairing and refactoring session followup on the submtted code. (Read Martin Fowler's book)
Why did you do choose to do it this way ? Can you extract this method out ? Can you show me how will you do it differently if you had more than 3 days ?
3) Logical questions (flowcharts) 45 minutes. ( Requires full concentration - Careful about the distinction between "number in the box whose number..." and "box number" ?
4) Design discussion (Projects that you have done and questions based upon that. Why this design choice and not another ? If given the opportunity to do it again, how will you do it ? They expect you to know about opensource projects which you could have used in your project. If you did not use it , then why ?)
After this, I was rejected despite many positives.
After a week, another call from same PM for the same position, but as 3 months on Contract. During this time, if I am found "suitable", and able to "ramp up / catch up" with Java and able to "prove myself", then I would be absorbed.
I thought, lets give it another try.
1) Another design discussion round ( Again the same thing as (4). Some problem context was given. So, how will you go about it ?
I think, they expected me to have multi-threading experience ( which I declined as I had no exp. about it simply because all the projects that I had done were I/O bound and not CPU bound ). Do you know anything about the care to be taken in multi-threading ? )
Next day, I was rejected again !!
I am left intrigued as to what they are really looking after and what went wrong on my part to fulfill their requirement.