Hi,

I am a Google engineer and have gone through the process twice (the first time unsuccessfully). It can be a frustrating and even exhausting experience so I certainly understand why you're bummed it didn't work out (I was the first time) but let me clear up a few things.

You don't need to go to an Ivy League or otherwise top school (actually most of the Ivies aren't in the top CS schools). I certainly didn't. I didn't even go to school in the US.

As far as grades go, if you're going in with 5 years of post-school experience, your grades probably won't even enter into the picture.

As far as releasing interview scores goes, that isn't going to happen for good reason. A score, by itself, is meaningless. Interviewers are calibrated against other interviews they've done and other interviewers. This is all in an attempt to make a fair assessment of the candidate. If a particular interviewer gives high marks to candidates where all the other interviewers don't, that gets calibrated. And vice versa.

I would suggest that anyone who wants to apply have someone within the company refer you. For one thing they'll be able to guide you through the process better and (hopefully) set your expectations correctly.

Plus a strong internal reference will help you much more than acing an interview question.

Starting with a basic solution won't hurt you either. You're right that staring at the whiteboard blankly for half an hour is the wrong thing to do. More than the code itself, the interviewer is interested in how you think and how you apply your knowledge to find a solution more than the solution itself. A suboptimal solution that works trumps no solution or even a more optimized solution with serious problems. It's totally fine to start with something that works and then refine.

One question though: did you have five interviews onsite one after the other or was one of them a lunch (or was a lunch in between any of them)?

Feel free to contact me if you have any questions or simply want to pass along any feedback.

EDIT: to clarify the calibration comment, imagine interviewers give a grade to the interviewee. If a given interviewer gives nothing but A+s then an A+ means less from that interviewer. Likewise, all Cs makes another C not necessarily a problem. That's why I say individual feedback scores only mean something in context.

Also, what an interviewer writes about you means WAY more than any given score. An A+ with no justification is simply ignored. A C- with no justification is likewise ignored.

Luck can unfortunately enter the process in a way different to what you might expect. If we're hiring a lot of people then at that time it can be easier to get a "yes". If headcount is tight, it becomes correspondingly harder to get a "yes".

Lastly, there are two different answers wrapped up into "no" that you unfortunately can't distinguish between from the feedback you're given.

The first is a definite "no" in that we're sure that at least for now we don't want to extend an offer. You may simply not be ready. There can be lots of reasons. We may well re-interview such people a year or more down the track. A very few are definite "no"s (eg they became belligerent or wildly inappropriate--yes it sometimes happens).

The second type of "no" is simply "we're not absolutely sure it's a yes". I must've fallen into this category because I was contacted two months later. You may well be in this category. Unfortunately there's no way to know. But we do keep records of those that applied and constantly go back through them.

As far as acing all the interviews goes, no you don't need to but you probably need to do really well on at least well (and can probably bomb one). Of course all of this depends on the position, current hiring needs, the particular hiring committee you go through and a host of other factors.

Don't forget you're not being judged in isolation either. There may simply be a strong pool of other candidates at the time you applied.