I had two phone interviews and an in-person interview before being rejected on site.
The first phone interview included a few behavioral questions but focused mainly on technical questions (e.g., explain what a hashmap is, discuss different hashing algorithms, compare ArrayLists and LinkedLists).
Then, there was an online shared whiteboard where I was asked to write some code:
Personally, I thought I failed this part of the interview completely, but somehow managed a second phone interview.
The second interview was a single online whiteboard question: Count the number of duplicates in a BST without using recursion and in constant space.
Again, I completely failed to provide a final solution to this question, but the interviewer felt I managed to explain myself well enough for an in-person interview.
The in-person interview had three technical rounds and concluded with the HR lead informing me that they would pass on my application. The entire process spanned about three hours.
The interviewer for the first round asked a few behavioral questions and a single technical question: Given two arrays, find the n-th largest value. I thought I answered this reasonably well.
The second interviewer asked me to walk through a solution I had implemented on a current project and to provide metrics regarding performance improvements.
The third interviewer simply sat in the room, asked me not to speak to him, and requested that I implement the following three pieces of code:
I completely failed here.
The HR person then came in and explained that they would pass on my application. I completely understood why.
If you are applying or are a candidate, be sure to know your basic data structures as well as you know how to write a class or compile your code. You WILL be tested on it, and they WILL push to see how much you know and how well you know it.
The HR person told me they measure candidates based on three silos:
If you are weak in any of those categories, they will spot it. Otherwise, if you are rusty, just brush up enough that you are comfortable implementing any basic data structure from scratch. You don't need to know how to implement advanced data structures, but you should be familiar with the time and space complexity of any of them.
Overall, I'd say the experience was fairly positive. It was a skillset that simply wasn't up to the task. In retrospect, I would have spent more time writing ArrayLists, LinkedLists, or BSTs on a piece of paper over and over again until I committed them to memory.
Good luck. Hope this helps!
Find the n-th value from the end of a singly-linked list in constant space.
Count the number of duplicates in a BST without using recursion and constant space.
Given two arrays, find the n-th largest value.
Find the sum of all nodes in a BST at a given height.
The following metrics were computed from 1 interview experience for the Tripadvisor Senior SEO Software Developer role in Boston, Massachusetts.
Tripadvisor's interview process for their Senior SEO Software Developer roles in Boston, Massachusetts is extremely selective, failing the vast majority of engineers.
Candidates reported having very good feelings for Tripadvisor's Senior SEO Software Developer interview process in Boston, Massachusetts.