I went through all those steps:
- Phone screening with internal recruiter
- On site interview with 2 engineers. To talk about what you do, projects you've worked on, previous achievements, failures. Then a quick code interview at the end (some Java interface to implement).
- On site pair programming interview with an engineer. Improve an existing code base, fix bugs, write new tests, modify some interface implementations, a bit of algorithm...
- Final interview with your potential manager. Talk about your management style, cultural values...