The following opinion is based on my experience sitting on a Google hiring committee for software engineers in 2013. I am no longer at Google, so things may have changed. Google is not a static organization, but it is a big company with lots of momentum. Culture and size can make any change slow.
It may be easier to get a job at Google than people think. Google seems to constantly be hiring. They troll the college campuses for young talent. If you get an interview, meet their requirements, and nothing unfortunate happens in an interview (e.g., bombing questions with more than one interviewer) then you will likely be offered a job.
What makes it hard for some people is that they don't meet the requirements and don't understand why that is so. For better or worse, Google has a type. It is hard to get through their interview process if you don't meet that type. Google's process produces few false positives. The downside is that it probably increases false negatives.
The best way to describe the type is "generalist". Software engineers are typically not hired for a specific position. They are interviewed for a certain breadth of knowledge and ability to solve problems. The type selects for people who are more systems oriented. If a person has a narrow domain expertise and has trouble thinking outside their domain, they very likely will not do well in the process.
Interviews are done by other engineers, most of whom are senior or higher. The engineers rate the candidate's answers to calibrated questions and give a numeric rating. Believe it or not, the candidate is graded less on the ability to quickly give the correct answer (which, btw, won't hurt) and more on their ability to think through the problem and produce a sufficient solution within a range of good answers. A non-optimal solution won't hurt you if you have demonstrated a logical thought process, and identified and solved the key problem points.
Your maturity as an engineer will be judged on your interactions with the interviewer. Typically a less senior candidate will just try to solve the posed problems. A more senior candidate will ask good questions to better define the scope of a problem and to ferret out reasonable assumptions. If you are junior and think you can fake this by asking lots of questions, you are mistaken.
The hiring committee reviews the reports and makes a determination to reject, interview further, or make an offer. If the candidate passes the hiring committee, their resume and interview reports go out to the groups that have open positions to see if anyone is interested in the candidate. I don't recall seeing a situation in which someone made it through the interview process successfully and there were not one or more groups interested in bringing the person on board.
A few points about the hiring committee process:
* One bad score is not a black ball. I was in a couple of conversations in which a single low score was questioned and the interviewer called in to give more information to resolve discrepancies between reports. Those typically result in having a further conversation with the candidate to resolve any concerns that may have been expressed by the interviewer.
* Because Google has a type, there were not many occasions in which a person had one bad score. Either all came back with varying degrees of positive, or there was more than one bad report. When there were multiple bad reports, any positive scores were on the low side of positive. That strength of correlation speaks to the culture of Google and its desire to protect their requirements and type.
* The people on the hiring committees are very conscientious. They are protective of Google culture and standards. They aren't looking for reasons to reject a candidate, but have no trouble rejecting someone who falls outside the Google type. If they think a person falls within type but there are concerns, they usually did a follow up. I thought this was extremely fair to the candidates. It is something people outside of Google probably don't realize.
One last point, if you don't get an offer, it doesn't mean you aren't a good engineer. You may fall outside of Google's type. That shouldn't be taken as a personal judgment against you professionally. Also, Google does have false negatives in the process. The number of good candidates who want a job at Google makes this only small problem for the company.
I did see candidates rejected by the hiring committee because weren't ready for a job at Google. Typically, that happens because the proper breadth of knowledge wasn't demonstrated, but everyone liked the candidate and thought they would be a good fit with a couple more years of experience. I don't know how well that is communicated when a candidate is rejected. But, if you have your heart set on getting a job at Google, it is good news for you. Try to get feedback about areas of deficiency. Work on those and reapply in a year. A reapplication after a year won't be rejected merely because you didn't pass muster the first time around.