It was annoying. First, I had trouble scheduling the interview call. Then, when the interview, finally, got scheduled; no one showed up. I emailed the recruiter/coordinator and received no reply. Seems like there was some communication issue. Eventually, we rescheduled. I was a bit disappointed but Snapchat was a product on which I really wanted to work. Finally, I had my interview call. The quality was terrible, but I decided to deal with it. At the other end was a Chinese dude, who had an accent. I have an accent too, but his was hard to understand. He gave me a technical question. Maximum points on a line in 2D graph. I thought about it for a few seconds and started giving out my thought process - as I am typically trained to do in these interviews. I gave him an exponential solution - computing all the possibilities and checking which is the one we want. He seemed to have a bit of trouble following me. I tried explaining it to him, but in vain. My intention was first to convince him that this will work and then work out a better solution. I decided to write down quickly what I meant with my solution. Then he asked me to compile it. What? Okay. We were sharing screens and it was a bit annoying because I wasn't told beforehand that I'd be using an IDE of choice. I was using a different computer. By now, I was fiddling around with some online compiler to compile my Java code. Early in this process, I asked him if I should explain my solution. He said he'd much rather see the code working first. I had no choice. Eventually, I made it compile. I felt the interviewer was barely listening. I ran a few test cases and everything seemed fine. He asked me the complexity and I said it's O(2^n). He said "so, it's slow". I wanted to scream and say "YES, that's what I've been trying to tell you." but I resisted. Later that night, I received a rejection. Ridiculous!
My advice anyone who has interview coming up:
Blurt out a fast solution right away. Don't think about optimizing it later on.