The process took 3 weeks. I interviewed at Tripadvisor (Newton, MA) in Jan 2010
Interview
I emailed my resume to a TripAdvisor technical recruiter near the end of December. I received a response less than a week later and went through 3 phone screens (2 of which were technical). I was asked questions pertaining to basic data structures and algorithms (hash tables, binary trees, sorting). I was then flown out to Boston for an on-site interview, which consisted of 5 1:1 technical interviews, then an HR interview. I was asked to implement common data structures/algorithms on the white board (BST insertion, search, bit vectors). The last technical interview focused on probability teasers. I was given an impromptu tour of the office as well. Overall, all of my interviewers were fairly knowledgeable and were generally easy to talk to. The office space was nice given it's many common rooms (some of which fully stocked with snacks and drinks), game room, and decent size cubicles.
Interview questions [3]
Question 1
How would you implement a bit vector data structure? Optimizing for memory?
I applied through a recruiter. The process took 2 days. I interviewed at Tripadvisor in Aug 2009
Interview
It started with a written question through the recruiter that asks about some general programming concepts, followed by a phone interview, and two afternoons of 1:1 interviews with peers, hiring manager, director and VP of engineering. The first day of interviews were all with peers and hiring manager, and were mostly technical interviews. The second day was spent with potential colleagues, director and VP of engineering, and of course the hiring manager, and were much less technical and focused on their development practice and philosophy.
The people are very friendly, smart and motivated, and the overall atmosphere is relaxed. It feels like a great place to work.
Interview questions [1]
Question 1
Given two stacks, how can you implement a queue? What are the costs of push and pop operations?
I applied through a staffing agency. The process took 4 weeks. I interviewed at Tripadvisor (Newton, MA) in Dec 2009
Interview
A technical recruiter found my resume on my website, contacted me and set up a phone screen for me. The phone screen lasted one hour, consisting of three algorithm questions, with difficulty level gradually increasing. Then I did two onsite interviews. The first on-site interview round consisted of six 1:1 interviews (five technical interview and one technical-recruiter interview); each lasted about 45 minutes. The second on-site interview round consisted of 3 technical interviews and following the technical interviews on that day I was made an offer.
For all the on-site technical interview questions, about 80% are algorithms/data structures (some interviewer gave a series of questions and asked me to code some of the algorithms I proposed; some interviewer gave one complex problem and asked me to design the algorithm and code); about 10% are OOP principles (e.g., when to use interface and when to use abstract class) and CS domain knowledge (e.g., how does insertion in B+ tree work); the rest are probability analysis and brain teasers. I was also asked to give suggestions to improve the functionalities of TripAdvisor website.
Technical-recruiter interviews are more like happy chatting, letting me know more about the company, than asking me to answer questions.
The people I interviewed with are intelligent and energetic. The work environment is great: spacious work space, huge computer display, free lunch, snackbar. There is chessboard, rockband, wii and ps3 in the entertainment area. They have shuttle buses to connect between the company and Newton Highlands T station.
Interview questions [5]
Question 1
Given an array of coin value types and an amount N, write code to find minimum number of coins which sum up to be N.
You have a fixed list of words, construct a data structure to achieve efficient (O(1) time complexity) prefix lookup. Write code to implement the lookup.
For example, the result of looking up "app" is {apple, applications, ...}
You have a fixed file. The format of each line is: city name, ip address range. Construct a data structure and design algorithm to achieve efficient mapping from an ip address to city name.
You have one billion numbers, implement getRandom() which returns a random number from them.
Constaints:
1. No duplicate returning value.
2. getRandom() will at most be invoked 100 million times.
Then optimize for space.