My internship interview saga
So, after months of worrying, I had finally landed an internship position at Google Seattle, in the team of my choice. But before I could stop being lazy and sign the offer letter, something happened which made every remaining day of that offer letter an exercise in surviving confusion. But before that, let’s go to the start.
Disclaimer:
This article is going to be long, and flaky. I wrote this to clear up my brain, the very day this whacky process finished. Putting it up in case it can help someone.
Disclaimer 2:
There might be some parts in this which seem accusatory. I tried my best to simply state the facts. If something seems wrong, please understand that it was not intended.
Campus internships
I had landed back from Germany after my summer internship, and faced the immediate prospect of facing the upcoming campus internship season, where you have to sit for a bazillion interviews in a single day. I had this extra pressure of so-called ‘living up to my own expectations’. I had liked my internship in Germany, and would at least want something as good. But being underprepared as I was, and hoping that I could later prepare, and sit for off-campus internships abroad, I left things there, and did not apply for a single company.
I saw all my friends land handsome interns, and, well … It isn’t too easy, having to sit with uncertainity. Some of them actually landed really nice internships. At one point, I actually regretted not sitting for the interviews.
First rejection (or was it?)
But after 2-3 weeks, somehow Google India showed up on the internship portal. I was quite double minded about that, but somehow applied. My initial plan was to upgrade this offer to a Google US offer, but later learned that was not possible. Of all the things in the world that could have happened, they did not even shortlist my CV for an interview. This was unexpected, because (I thought) I had a great CV. Many people have told me that my CV showed interest in research, and they might have thought that I would leave the internship. I personally think it just got overlooked, or maybe it was actually bad. Did not really count as an interview rejection, but had to some how survive the disappointment that creeped up. This is not how I would have expected my first application to go.
Second rejection (or was it?)
Anyhow, come September, I had applied to Palantir through a referral, and gave their coding test. That’s when I realized, how bad my interview skills were. I had never prepared for interviews, and suddenly it did not seem easy. This was a jolt to me, and no wonder, I got dropped there and then, in the Palantir process.
I took this one a bit more positively though, and started practicing competitive programming again. This was not the ideal thing to do, I think in hindsight, but at least it got me started.
Again, this wasn’t an interview rejection :)
Google?
I got referred for Google North America around early October, and heard back in about 2 weeks. I had my interviews scheduled for early November. I still did not practice coding for interviews, and rather focused a bit too much on algorithms. And thus, my preparation was lack-luster to say the least. 24 hours before my interview, I realized that I had once planned to solve the book Cracking the coding interview. It was absolutely hooking, and I regretted not solving it early on. I spent the remaining time going through the whole book. If you’re reading this for some tips (wrong place, buddy), that was wrong too. I should have coded. But I found that out pretty soon.
The interviews
My first interview went horribly. The interviewer could not understand most of the stuff I said, and somehow a misunderstanding led me to code a solution for a slightly different problem, which he later pointed out. The interview ended with him thinking I did not get the correct code on time. Yes, I did not finish even a single question.
The second interview put some confidence in me though. The phone line was better, and I managed to complete the question, as well as chat for 5 minutes after that. In hindsight, I should have solved 2 questions, judging by interviews of my friends, but I was happy to have not left any clear sign of under-performance.
After this, I assumed that I shall be rejected. 2 of my friends whose interviews went on nicely, they got called for a third interview. In my opinion, my interviews went horribly.
Result
Well, I got put into the host-matching phase directly. I have no idea till date, as to why this happened. Perhaps CV and my approach to the problem saved the day. This was the night before my most important final exam in college, and this helped cheer me up.
So now, I was in the host matching phase. For those who do not know, this means that Google would put up my CV for project hosts, and they can interview me if they like my profile. If I did not get matched within 6 weeks, my process would be terminated. Some people got offers with a guaranteed project. I do not have any first or second hand information on this, but I assume this depends on your interview performance.
A few days before my Google interview result, I applied for Facebook through a referral. What else would someone do, who is expecting to be rejected by one big company? I also applied to a handful of other companies, Microsoft Redmond, Microsoft Research, VMWare, Cisco to name a few. They never got back to me, despite referrals from employees.
The Facebook recruiter arranged for an interview at the end of November, which was pretty late. Before that interview, a friend put me in touch with a good friend of his, who would be interning at Facebook London this summers. This super-enthusiastic dude actually offered to give me mock interview practice. I flunked this one too. Managed to barely solve 1 problem in this interview, where I should have been able to do 2 due to the nature of the problem. This was when I had less than 24 hours left for my interview.
I resolved that I would definitely put in my best, and I picked up Cracking the coding interview again. Somehow, I realized that what went wrong is that I have never solved coding problems for practice. I put in all the time I could, and solved most of the important chapters of the book for practice. But importantly, I actually coded all the important problems this time.
The result was clear, I solved 2 problems correctly for the first time in an interview scenario. The practice paid off, and I could not be more thankful to that awesome dude who opened my eyes. I did not care about the result now, since I had driven a point, I could actually do this.
Google host matching
A few days after my Facebook interview, I got a call for a project at Google Seattle, involving, Kubernetes! I had been mentioning that I would love to work on Kubernetes, and I had even tried to implement a feature on it (since it is Open Source). I interviewed immediately, within one day of the email. They noticed that I have worked on it already (a big plus, I think), and asked me a couple of design questions. I think I knew I did well, when after I sketched my solution into words, I got a reply “That’s actually how we do it in production”.
This was a dream come true for me. And surely enough, I got a reply the very next working day that I would like to move ahead with an offer. I did not waste any time to say that I would too.
I finally had an offer from Google US!
Facebook again?
I do not know why I did not sign Google’s offer the day I got it. I was given 10 working days to sign it, that meant 20th of December. One fine day (12th December), I get a mail saying that I got into the 2nd and final round of interviews for Facebook London internships. I had no clue what to do now, and wished I had simply signed Google.
Here was Facebook London, known to offer return offers in London and Menlo Park. The other side, Google US. A higher pay, a confirmed and nice project, but it mostly offers a job in Google India to interns, a place I was not looking forward to joining. I spent the 2 days before my next interview, simply talking to people if leaving a confirmed offer at Google for Facebook would be a good choice.
I gave the final interview with I’m gonna drop FB anyway in mind. I had again coded some problems from the same book for preparation, and again managed to solve 2 problems, though this time around I had major hiccups, and barely solved the easy problem. Somehow managed in a very short time, the solution for the 2nd, and supposedly tough problem. I think I did make an impression when the interviewer asked me about some nice project I did, and I described the development, algorithm and motivation for Puppy Love.
This ensured that FB would haunt me the next few days.
Decision making
Somehow, I spent the remaining days juggling between Facebook and Google. It so happened that I got promised that I would get Facebook’s decision by Tuesday, 20th, the same day I was supposed to sign Google, and the day of ICPC’s Chennai regional round. I would barely have a few hours to decide between Facebook and Google, if I got accepted.
I was advised to not weigh this too much at the moment, since if I got rejected, it would be a heartbreak. I quote myself:
I would rather be counting my chickens before they hatch and be prepared, than be modest but unprepared
I spent hours talking to people. I made a huge list of points comparing Google and Facebook, and Facebook somehow won there. Mostly because of my desire for a return offer abroad. I still shuffled around.
The final day
By the time the actual day came, I had settled on Facebook. I could bear a bad project, lesser pay, for long term benefits at Facebook.
ICPC was the least important thing to happen that day. I got away as soon as I could, and refreshed my Emails till 6:30 PM IST, but got nothing. I mailed my recruiter, and got a reply saying that a decision would be taken in a meeting about to start (in London), and I would know the result around 9 PM. This was bearable.
Come 9, 9:30, 10, 10:30, and yet, I did not hear back. I had decided I would drop Google if Facebook extended an offer to me, but for that, I needed an offer. I confirmed that I indeed had to sign my letter by midnight, and sent another mail to the Facebook recruiter, even sent her a message on Facebook. Not receiving a reply, I anxiously waited till much more than I had expected I would be willing.
It so happened, that she never got back to me. That night at least. I ended up signing Google at 11:45 PM, and congratulated myself on finally having an internship, assuming that I must have been rejected, and thus there was no rush to inform me.
It turned out the following morning, that I got a mail saying that Facebook has selected me for an internship! I could not believe this. This was early enough to mean that the decision must have been taken the previous working day. Of all the possibilities I had considered, reasons I had weighed for Facebook vs Google, all the interviews, the stress of the past 2 weeks, it all boiled down to a (possibly) sleeping or forgetful recruiter who did not get back to me the previous day. I do not know if the result was actually declared before midnight in India, when I signed my letter (6:30 PM GMT), but I assume that it would have been, since the meeting was scheduled for 2:00 PM GMT. In any case, the result did not get conveyed at the promised date / time.
What happened?
I signed Google. It took multiple weird scenarios which built up to this day. As a friend quoted:
Your internship at Google probably serves a much higher purpose
I finally got back to pondering over the reasons I had loved my Google project, and felt happy about it. It was indeed a great opportunity, and I resolved to make it count.
Later that day, I got a call from a recruiter in London, describing my offer to me. I could not bear to hear it. I told her that there was some issue with my recruiter yesterday, and I have already signed Google. She arranged for my recruiter in India to call me, and I closed the offer. That’s it.
All the weeks of pondering over this decision finally got decided by a sleeping recruiter.