My friend told me it's a great company and I applied for a position online. Then I had a phone interview. Two questions were really easy. Tree traversal and another easy problem. I finished them in 30 min and got an on-site chance. Onsite interview wasn't perfect. I drove 1.5 hours there and really tired. Front desk staff was very nice and gave me a bottle of water. All the interviewers were very friendly. The first round, I was told to do a simple coding problem using Ruby. I wasn't able to finish it. I am a Java developer and also write lots of Javascript every day. But unfortunately, they are mainly using Ruby. I used it about 7 years ago and forgot all. Another awkward thing was I hadn't used Mac at all (really). I was thinking the keyboard would be the same with my linux keyboard but I even didn't find the copy&paste to use the vim hot keys. Finally I gave up and used the text editor. My suggestion is you definitely should learn Ruby before you go there. They love ruby. The second round, I was given 4 Algorithm questions. I wasn't able to give a perfect solution for the last one. Questions were about Tree, Graph and String. The last round was a system design questions. After finished, I realized it was the famous N-gram question but I went to the wrong direction. Recruiters were really nice during all the hiring process. They even prepared a gift for me.