The interview processes began with a phone/computer interview. I was on the phone with a software engineer but we were sharing an online whiteboard to look at code. I was given a short program in Java (equivalent programs in other languages were available) and asked to identify what it did. I was then asked to optimize the code to do this faster and to analyze its big O complexity.
The second round of interviews were on-site face to face. Was asked to solve problems on the whiteboard.
General advice: you really have to know your fundamental data structures and algorithms inside out. Trees, graphs, linked lists. Don't forget Big-O.