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

Job Opportunity

I was recently the happy receiver of a phone call from a recruiter at Google. They had found me through my LinkedIn profile, and were somewhat impressed by my resumé, as it were. I am now offered the chance to take the first stage of the interview, the dreaded phone screening.

I am going to prepare for this by reading through CLRS, and a couple of my other, older books, to get up to scratch on the subject matter.

I will be documenting the process here, so that should I get in, it could help other people, and should I fail, it would be a guide as to how to avoid failure for myself in the future, and how other people could, in retrospect, avoid what I have done that has led to my failure.

Well, done for now I guess.