Showing posts with label list. Show all posts
Showing posts with label list. Show all posts

Friday, May 18, 2007

Googling Your Google Interview

A reader asks:

"I'm about to go through the google interview process... was curious if there were any resources that you thought *did* help - lots of sites purport to have sample interview questions, but I was curious if one had better info that the others..."

Before my two interviews, the recruiter had e-mailed the name of the Googler who would be interviewing me. What's in a name? In this age of Google spying, it could be helpful in preparing for an interview, to know your interviewer before you even meet. I actually did Google up my interviewers but only ended up finding out about one of them. Interestingly enough, he was a contributer to an Open Source library that I had used before at work. Is it ethical to Google people up? I don't know, but with every Google search I did, I was presumably helping him keep his job anyway. My main point though, is that Google is a good tool in the interview process.

Google was a very good resource in picking up information and tidbits about the interview process. Sorting through the mess was difficult though but I found the best resources were not 'job websites' but blogs either about the interview process or blogs written by Googlers. These personal insights came straight from the source and will give you an idea of what to look out for. You will be able to get a decent idea about the questions being asked and learn a lot about the company culture and be able to talk about it. Here are a couple of blogs which were good reads:

http://www.nomachetejuggling.com/2006/12/30/my-interview-with-google/
A very detailed, well-written piece about the experience, including good pictures and commentary. Don't forget to read the epilogue either.

http://benjismith.net/index.php/2006/06/07/interviewing-with-google

This guy, in short, seems like a pretty brilliant guy. The topics they got into were way over my head -- "I’ve had lengthy conversations about OO design patterns, database design, computational linguistics, naive Bayesian classification, agglomerative clustering, time-series data analytics, hash effectiveness evaluation, search algorithms, partial sorting, concept-mapping in n-dimensional vector space, and state-graph redundancy elimination." This account really shows how exhaustive and mind draining the interview can be.

http://www.blogomonster.com/blog/ybm_caaw/general/2006/09/09/job_interview_by_google
Another account, which kind of turns out to be a little bit of a horror story, with an apparently 'rude' interviewer. In the end of his post he gives some very relevant tips to get through the interview.

http://www.shmula.com/31/my-interview-job-offer-from-google
A success story. He even got the following question:
"You are at a party with a friend and 10 people are present including you and the friend. Your friend makes you a wager that for every person you find that has the same birthday as you, you get $1; for every person he finds that does not have the same birthday as you, he gets $2. Would you accept the wager?"

"The answer has to do with the number of days in the year and the probability the person’s birthday falls on the same day as mine (without replacement). I eventually solved it, but it took time learning how to apply probability with no replacement."

http://www.zachcasper.com/2005/10/google-phone-interview.html
Looks like Google won the round in this interview process, but he does write about specific questions he was asked.

Here are a few blogs written by well known Googlers. Company culture, technical insights, and just plain-old good reading can be found here:

http://niniane.blogspot.com/
This was one of the first blogs I read written by an actual Googler. From what I understand she was part of the Google Desktop team. For the most part the blog isn't even about Google, but its pretty interesting nonetheless. Scan through the posts and you'll find random tidbits about the company. She is the author of a pretty popular write up on Preparing For a Software Engineering Interview

http://steve.yegge.googlepages.com/five-essential-phone-screen-questions
An ex-Amazon employee turned Googler. I absolutely would not want to interview with him, but take a read of this and be challenged. His actual blog can be found here - there's nice account of the experience of a new hire.

http://paultyma.blogspot.com/
I had provided a link of this post before, but here it is again. This guy has a great entry called "How To Pass a Silicon Valley Software Engineering Interview".

Here are a few formal articles that were written that might help

A look into the Google job algorithm

An interview with a staffing director at Google.

These aren't a definitive list of links or blogs for sure, but its a decent start and some good reading. If you have any links you think are great and I missed, let me know, I can post it up.

UPDATE:

Here is a really comprehensive look at official Google blogs and Google employee blogs: http://www.essistme.com/2007/05/16/list-of-official-google-blogs-some-unofficial/

Wednesday, May 9, 2007

My top ten tips that may help you for the Google Interview

Below is a short list of tips and thoughts regarding the Google interview process that might be helpful to anyone interested in interviewing with Google -- but (as LeVar Burton would say) you don't have to take my word for it -- I didn't get the job.

  1. Know Someone (Networking): Like I had mentioned, I believe the statistic was that 1 million resumes were sent to Google but only 5000 people were actually hired last year. From that perspective, that means if you apply to Google, you have a .5% chance of actually getting hired. If you know a Googler who can refer you, the recruiters will most likely consider you before they consider a random applicant. Going through a referral will get you noticed quickly. From the time I was referred to the time I was contacted by the recruiter was a matter of days.
  2. Dont let this be your first interview in a long time: I'm copying this word of advice from a current Google employee who wrote a blog entry about interviewing and I can definitely agree. He said do not interview with your dream job first. If you are a bit rusty, you may have trouble interviewing at your 'dream job'. I think that was one mistake I made. I think after interviewing with Google I became a bit more refined in how I handle myself, what my career goals are, how I talk. Interview with other companies, let your thoughts, opinions and skills really sink in and then have a go at your dream job.
  3. Hammer down on the fundamentals: The recruiter will probably tell you this, that at Google algorithms and data structures are the 'bread and butter'. The interview will most certainly center around problem solving using algorithms and data structures. Given certain conditions, ie memory, environment, language, etc, what would be the most efficient way to solve a problem. Know your basics and be prepare for the twist. Old text books and even the AP Computer Science book are actually a great resource because they do just that. The chapter teaches about the topic but the question section always puts a tweak and presents a unique problem.
  4. Paper and pencil coding: As I prepared for the interview, I tried to code out problems on paper and pencil to mimic the actual interview process. I soon realized how much I relied on the IDE to help me code. There are so many things the IDE does for the coder that I was just kind of mentally screening out such as certain syntax or structure. Do your best to code using paper and pencil because that's definitely what I experienced.
  5. Talk a lot: I don't mean be annoying and just babbling, but speak your mind as you grind down into an algorithm or a problem. This shows a thought process and gives clues to the interviewer about your skills and personality. I believe the interview is meant to be somewhat of an exchange between the interviewer and interviewee. By keeping open, intelligent dialog, I think I was able to get through my questions much easier and even get help from the interviewer.
  6. Be prepared for a long process: I can't say this for sure (since my interview process ended rather shortly) but from what I understand and what I was told, the process lasts more than a month. With the myriad of interviews and reviews, the length of time is no surprise. Fortunately it just gives the interviewee more time to study and sharpen up.
  7. The interview process isn't always an accurate representation of a person: After having gone through what I have, I've been able to at appreciate what Google is trying to do. They are trying to produce the most effective interviewing process laden with tough questions meant to bring in the best of candidates. It seems to work, but at the same time an interview may not best represent a candidate. I know of interviewees who are bright, capable, technically strong and interpersonally gifted who did not get the job, but this just shows the arbitrary nature of interviews, which brings me to my next point.
  8. A bad hire is worst then screening out a good candidate: Anyone who has ever worked knows just how much a bad hire sucks the life out of an organization. A phone screen is named as such to show that it is meant to 'screen' out people who aren't a good fit. This interview process is so rigorous that bad hires presumably do not make it through. Unfortunately at the same time, the rigorousness will screen out some great people, but the ones who make it through all have a strong chance at actually being great employees.
  9. Contract to hire is good: From what I understand, a lot of the new hires are being brought on as a contractor before being hired full time. This is a really good idea in keeping the integrity within the organization's engineers. The probational period is just another screen to make sure candidates really do meet the needs and requirements of the company. If you make it far through the interview process, this may happen to you.
  10. Have Fun: So I didn't get the job, I never got to experience the free world class dining, the trip to Mountain View, or the subsidized massages, but through it all I'd say it was a pretty wild yet short ride which I enjoyed. If you are a software engineer and you are applying to Google, there must be a part of you which is genuinely interested in challenges and problems. There must be a part of you that gets geeky over these kinds of things. Go into an interview and do your best to enjoy and have fun in the moment. If you get it then great. If you don't then hopefully you gained something from it and enjoyed the thrill whatever the outcome -- I did.