HR phone screen: talk about projects, availability, school, etc.
Technical phone screen: Object oriented programming, database, design patterns (singleton, MVC), projects
Code screen: refactor code
Onsite technical interview: 4 rounds. 3 technical, the last is really a recap. First round we went over my code screen and the manager was pushing me to defend my design choices (somewhat argumentative in doing so) but once I explained why i designed it a certain way he laid off.
After that was a technical interview with 2 mid-level engineers asking me algorithm and database questions. Then they asked me to whiteboard a question (algorithm that calculates hours:minutes based on angle of separation between hour and minute hand).
Next round was with two senior engineers, once again another whiteboard question. This one was supposed to be an algorithm that evaluates the state of a tic-tac-toe board (is it currently a tie/is there a current victor/is the game not over yet).
I had an offer on the table so they were very helpful in speeding up the process and getting me onsite for an interview