First off, don’t be fooled by any of their job posts. They have a specific interview process and are looking for a specific type of person - and it is not what is in their job posts. For example, the first line of the job post I received from an external recruiter was “Driven results within a strong, talented, opinionated team, and have a solid track record of project delivery”. In the roughly two hours I spent in two phone screens, there was not one questions tailored toward figuring out if I fit the description posted. Or any other soft skills, it’s purely technical and they are looking to see that you won’t question their existing processes.
I was initially contacted by an internal recruiter a year back and turned down the opportunity to interview as I did not think I would be a cultural fit for their fast paced “speed wins” culture, which I suspected is leading to a deteriorating code base with tons of code duplication.
A year later an external recruiter sent me a team lead job description that seemed in line with my beliefs. When he revealed it was for TripAdvisor, I was surprised because the description did not match the culture. So I decided to give it a shot. Within a couple days I had my first phone screen scheduled.
During my first phone screen the interviewer asked what I was doing currently. Then I was immediately asked to do a coding problem on a virtual white board, which took up most of the interview. He allowed me to ask some questions at the end. He dodged any questions related to code maintainability. He did not even know what position I was interviewing for, which I thought was a bit odd. Overall, I thought I did poorly on the technical question and did not expect a callback.
To my surprise they contacted me the next day for another phone screen. It was exactly the same format as the first phone screen. A single question on what I was currently doing followed by a virtual coding question and then some technical questions related to caching (How do you size your cache? How does an LRU cache work? Are objects serialized in the cache?). The virtual white board question was to write code to determine if two binary trees where equal. Again, I was given the opportunity to ask questions at the end. And again, questions around code complexity and maintainability where dodged. And I even stumped the interviewer when I asked what the current technical challenges they are facing.
I thought as if I did extremely well on the second phone screen, at least technically. And considering I got called back after doing poorly on the first one I thought there was no doubt they would continue the process. Instead I received an e-mail three days later stating that they were not moving forward.
Overall, if you brush up on your data structures (hashtables, lists, sets, trees, etc.) and practice a bunch of algorithm questions (like those found on CareerCup) and also understand Big O, then you can very easily ace the technical portion of the interview.
In terms of culture, your best bet is to come across in a manner that you agree with the “speed wins” mantra as the best process for developing applications. And definitely don’t question any of their existing processes. I suspect this hurt me the most as they had recorded my comments I made to the internal recruiter a year before and in the end was probably used against me. Unlike their posts, they really are not looking for someone that can think on their own.