Recently I got a chance to give an interview to Google for Front-End Software Engineer. It was a nice experience and I learned a lot specially related to what they ask and what skills they seek in a person. This interview makes me realized the weaknesses in my problem solving abilities.
Google’s Interview Process
Initially an engineering recruiter contacts and asks for some additional personal info. He may send you a questionnaire containing questions like rate the programming languages with which you are comfortable with and second important question in it was the area of interests like Advance Algorithm, Operating Systems, Front-End, etc. Then they arrange 45min phone interview. If you succeed in it, they call you to Google campus (Mountain View, California) for a full day interview in which you have to stay with the technical team with whom you will work if you are selected. This team take about 4 to 5 interviews in a single day. The travel expenses and hotel stay is paid by Google.
What Google Asks?
They don’t need a particular technology skillset like LAMP, .NET, Java. They even don’t care about the programming language you use during the interview to solve the problems. What they require is problem solving ability. Person must be able to solve data structure and algorithm problems. They take deep notice on how person thinks to solve a particular problem or in other way how he/she approaches to the solution. Also they look for high performance solutions. For example they may give a problem whose obvious solution may require O(n) running time. But they will always ask you to optimize it more to get let’s say O(log n) running time. They focus too much on performance. They also observe the coding style of interviewee. Clean code with proper indentation is must.
In short you must have strong algorithm skills and you must have knowledge of algorithm analysis. If you don’t understand terms like big O notation and running time of algorithm, you can never pass their interview. In short you must have Computer Science degree.
Why Algorithm Skills?
The answer is simple. A person with good algorithmic knowledge has better problem solving skills and he/she can write efficient code.
How Can You Prepare?
Try reviewing your data structure and algorithms and improve your problem solving skills by solving as much problems as you can. I recommend following books to fully understand the interview process in companies like Google and Microsoft.
Some useful links
- Technical Interview Process
- Technical interview questions, brain teasers, puzzles, quizzles
- 140 Google Interview Questions
Why I Failed?
Google don’t tell any reason for rejecting the interviewee but as far as my case is concerned, I think need to polish my algorithm skills more. In the interview I gave them the correct solution to almost every problem but they require the most efficient solution with less running time. This is where I lacked.