At a senior level in the places that I've seen, I'd expect a mix of very abstract as well as more practical questions.<p>The other responses show some of the more algorithmically based practical questions. Things like fizzbuzz, quickly followed by how you'd do an in-place string reversal, followed by whether you'd use quicksort vs mergesort for something. Personally, I don't see a huge point in too many maths-based questions because Google, so it's a litmus test and not a skills test IMO.<p>Then there are language and framework related questions - maybe you'll get shown some complexish code and be asked to spot the bugs. Or you'll get asked how, in practical terms, you'd go about achieving something (with which library would you be working). This would also go over the technologies and skills you might actually need to have to do your job at the company.<p>To see the cultural fit, they might ask about a project that interested you, and why it interested you. I come from a government town, so this question winds up being pretty awkward, but a lack of passion and enthusiasm is something that I've seen technically-relatively-competent people turned down for.<p>At a higher level, there's things like "say we wanted to create a link shortener, how would you go about implementing it?" and the follow ups on scaling and asynchronous processing ("what about analytics?" etc.) Stuff which gets you talking in terms of the components and how they'd interact in terms of queueing, designing for reliability etc etc. These types of problems really have no wrong answer, and you can learn a lot about how the developer thinks, their areas of interest, and whether they'd be a good fit for the team without ever getting them stuck on a problem.<p>At the end of the day, I haven't asked/been asked, questions that are that different from those that you'd ask a junior or intermediate interviewee, it's the detail and quality of the response that you expect to be different.<p>That said, with 3 hours, they'll probably have the interview and then get you to code something.