The Face to Face

I went in for the face to face.  The people were nice and friendly in the office. I did have a fairly nasty incident the night before, though.

Needless to say, travel costs including taxi fare were all covered by Google, so I hardly spent a penny.

I went out 10 something at night to grab some dinner. It was late and there were few places open. I started eating and then a guy came and sat next to me. Now, as the place was very small and it was one of the only few operational places left open, I did not think much of this, as it was already very cramped. He started talking to me and it soon became clear that he was from Cyprus and was here on business. I told him I’m also on a very short trip.

He ate a lot of food, and then left for the rest room. In the meanwhile I finished my meal and asked for the bill. The guy brought me my bill and I looked at it. 1200 Turkish Lira. My mind was blown away. I checked and realized that it was four times the number of items I had eaten, and mine was just amounted to 70 Liras — in retrospect, the hotel would have charged me somewhere near 100 Lira, with the difference that it would have been brought hot to my room and of a superior quality. Not to get sidetracked, I called the manager, a stocky short guy with a huge mustache. He told me that “my friend” had left and I had now to pay for him. He had three bottles of 250 Lira wine and lots of food. I dug into my pocket and realized that fortunately I didn’t have much money with me. Around 100 Lira just so that I could buy dinner, as that was the purpose for which I had set out in the first place.

I got into an argument and then he called his second, a tall guy, that I thought was going to beat me bloody. We counted my money. 110 Lira and 30 Euros. He suddenly looked at me and said in a heavily accented Persian, “Are you from Iran?” and I looked at him and said yes. He told me that the guy was probably with the manager, and that this was all a ploy. But he cautioned me that things might get ugly, and fast, and I told him that I was a student and this was all my money and that I had come for an exam and that my hotel was Topkapi in Aksaray. Fortunately, I didn’t have any identification or hotel information with me. If they had realized my real hotel was in the best part of the city things might have changed drastically.

He looked at me and then said because you are “Fars” and because I’m a student he will cover my back. He took all my Liras and 10 Euros and gave me back 20 for the ride back home. He went to the manager and signaled me to leave. I left quickly, shaken.

Well, that story left aside, let’s get to the actual interview.

The Interview

There were three separate interviews. Two with senior engineers from Ireland, and one with one engineer in Mountain View, California. I am not at liberty to divulge the names or the particulars of the interview — I think 😀 — but I will talk about the general theme of it, and will now go into as much detail as possible.

First Interview

The first interview opened with some small talk about the position I was going for, and I was asked whether or not I knew anything about it. I was then asked why I was interested in the job anyway, and what did it mean to me?

Then I was asked whether or not I had ever run into a major bug, in if yes, how I dealt with it. I went into as much detail as possible. I think it is always a good idea to give them the general idea of where the bug came from, and then if it is required, hint that you can go into more detail if necessary.

I was then asked about a particular subsystem of Google and how it could be designed from scratch. It was more like a two-person design brainstorming session and I think it was very much helpful in the way I answered it, since it stripped away my nervousness. I was then asked why somebody would want to abuse this product, and how would they go about it? Then I was asked to reverse the roles, and stop the attacks.

I was then given the time and opportunity to ask my own questions.

Second Interview

This one was more along the lines of my previous phone interviews, as it contained data structure and algorithms questions. It cannot be overstated that Google apparently cares a lot about bit manipulation as the topic again came up in this interview. I was also asked to design a game board for a certain, popular game.

Then, I was again asked to design a major feature of the Search product from scratch and describe what sort of data structure and algorithms were necessary for that product to operate in a reasonable fashion.

I was then again given the opportunity to ask my own question. This interview was observed by a younger interviewer-in-waiting and I was given the chance to interact with him as well by asking him questions about the whole company culture at the end of it.

Third Interview

The third interview was conducted with a gentleman working for Google’s PQO at the Mountain View offices. He gave me a general rundown of the whole job description in a minute and asked me to describe a major bug I had faced. I told him that I had already been asked that, and if necessary I could discuss the same thing with him, but if not, I was ready to answer another question.

He thanked me for telling him that, and asked me instead to describe a design challenge I had faced. I did, and he then gave me a somewhat data structure related question about one of Google’s anti-abuse strategies.

He then asked me a question in the same vein as the brainstormer from the first interview, this time about another particular sub product, and I gave him a design rundown. He then asked me to abuse and anti-abuse the product.

It was concluded by a friendly chat about the position and its technical aspects, as well as the whole culture of the company.

Conclusion

All in all, it was a pleasant, surprising, and very difficult process. It took over four hours and I was beaten up by the end of it, and could barely get myself back to my hotel. Hopefully, it will have gone well, and I will be receiving a positive feedback. But if not, I will be buckling my belt for the next round that life will present me with.

Cheers!

On to da Face-to-Face

So, I heard back from my coordinator that I had successfully passed my third phone interview. I was told that the answer would come back in a week — if I was good — and maybe even later. And I was planning to have a month or two of exhaustive study and preparation before the face-to-face, should it come to that. But on Friday, a mere 36 hours after my phone interview, my coordinator called me and told me that they wanted to speed things up a bit, for me.

They had looked into it and had realized that the visa process for Ireland could be a bit longer than necessary for me — an Iranian. She asked me where would it be possible for me to attend without a visa. I immediately responded with Istanbul, Turkey. She wanted to schedule the interview for the coming Tuesday, less than a week from the phone interview. Even if I had not been panic-stricken, there was no chance of such a close date working out for me.

Since I have not yet attended my military service, and as such do not have a military discharge pass, I would need to ask for permission before leaving Iran. This means that I will need a week or two of paperwork for this to work for me. I told her as much, and now, I am supposed to have my final interview with the Google staffing team in Istanbul via video-conference in the week of 25th of January. Two weeks. Scary.

Anyways, I need to study for my proposed role of “Anti-Abuse Engineer” which will include any material available online about violation of terms and policies of the Google products, and how to deal with them.

So, this is where I stand, at the moment. More updates will come when and if things change.

Second Phone Screen

I got my answer in about three weeks. A rather long period of time, based on the normal time reported by other people.

But it was good news, so I wasn’t too mad. What had happened was that apparently it was Google recruitment season finale and my recruiter was swamped. So, anyway, I got good news, but they told me to study more data structures. It all relates to a data structure question I had to answer, but had to invent my (coincidentally correct and working) own data structure because I had not encountered the actual data structure before.

Anyways, I got to it. Studied CLRS some more, read Cracking the Coding Interview some more, and then it got time for my second phone interview. It happened two weeks ago. This time, the interviewer was more business-like. No chitter-chatter to get me to talk about my background. Just jumped right into coding answers to the questions on the shared Google Doc.

I got the first question right, and stumbled my way past some optimization to my solution. He was happy enough and gave me the next question. I had to first illustrate that I understood the question well enough and had the rough sketch of an answer before he would let me write some code. I chose Java since it’s the language I’m most comfortable in.

I made the silly mistake of sorting an array and getting the first item by way extracting the minimum, instead of the obvious O(n) way. He caught me on that, and I said shit out loud and apologized and fixed my code.

He was happy that I could detect my own mistake at one point, and finally asked me to tell him how I would make an O(km) answer run in O(m lg(k)) by using the proper data structure, but told me no further coding was needed as we were nearly out of time.

I told him, and he said his good day to me. I asked him to tell me how I did before he hung up, but he wouldn’t. He hung up and I waited for an answer.

Four days later, my recruiter called me, giving me a very positive feedback. He pointed out these points (from a feedback report, no doubt, as he confessed himself to be not-so-technical):

  • very adept at algorithms
  • converts algorithms to codes very easily
  • competent codewriting
  • made sure functions terminated without errors
  • no issues understanding the problems
  • sophisticated coding
  • should be brought in for the face-to-face

Anyway, I was thrilled. He told me should the same feedback come from the face-to-face, I could consider myself hired. I was overjoyed. Right until he told me that Google — unfortunately — would not be hiring anyone outside of the US for its US-based offices, this year.

Now, I am faced with the choice of going somewhere else in the world, or postponing the whole deal for a possible future date. I would love it to happen and should it be for Australia, I would be extra happy. But I have to wait for the recruiting officer for outside-of-US offices to tell me what options I have, exactly, location-wise.

Anyhow, that’s how it has been so far. I will be studying some more, practice coding on paper and a whiteboard, since that is the hardest part, I hear. I will also be reading more in-depth algorithms to be as ready as possible. Who can ask for more, right? Anyway, if there is anyone out there reading this, please do wish me luck.

 

First Phone Screen

Okay. I had my first phone screen with Google on October 16th. Unfortunately, the phone connection broke down five times and the interviewer (who, incidentally, was called “Anonymous Iguana” in the Google Doc shared with me for the purpose of the interview) had to postpone it. My recruiting coordinator wanted to reschedule for a week later, but since the anticipation was grating on my nerves I had to object and the interview was set up for two days later, the same time.

Anyways, I finally got interviewed. At first, there was an overview of hashtables. A pointer to those who want to take the interview upon themselves. If there is something that is specially emphasized in the prep material you should take it as seriously as possible. For instance, in my case, hashtables were singled out as being really important.

Then there were questions into my background. The usual, really; what was your biggest challenge, how did you face it, how have you liked the different areas you have worked in, etc.

After that, there were two questions, one regarding bit manipulation, and the other high-end system design. I had seen both questions previously, but it didn’t make them any easier.

I cannot share the questions with the public, but I can advise everyone to read the material available online as well as the book, Cracking the Coding Interview.

I have not yet received any feedback from Google staffing, and I’m dying to hear from them.

Preparing for phone screening

As I have previously mentioned, I am currently preparing myself for an interview with Google. To that end, I am bringing my data structures and algorithms knowledge up to scratch by practicing all the important bits from CLRS.

To help other people who are, like me, going through the same phase, here is a link to the Github repository on the matter: https://github.com/mmnaseri/ds101

Also, I have found this very useful in reminding me of the GoF design patterns: http://www.blackwasp.co.uk/GofPatterns.aspx