Google: My interview experience
gilvegliach.it
gilvegliach.it
There's a decent amount that you can do to prepare for one of these things, but there's also an incredible amount you don't have control over. If you don't get the job, it's not a signal regarding your quality as an engineer and you shouldn't interpret it as such (however tempting it may be to do so). Remember, there are many great places to work right now, and your skillset is in demand. If we didn't get lucky enough to hire you, someone else will quite soon.
This is super important. Don't take it personally at all. They're using the randomness as a flow control. They are always attracting more talent than they actually need purposely to keep the reservoir full and just running the extra through the spill gates.
Just taking a ride over the chute is proof positive that you've got marketable talent.
Of course "not getting a job" is a "signal regarding your quality as an engineer". We need to keep this toxic mindset out of tech and silicon valley. The idea that everyone is smart, special, and deserves a job at Google, is completely false. There are people here on HN that will never get a "top" software/machine learning/design job simply because they are bad at it. Telling them "it's not you, it's the company" will only doom their future even further as they will lose motivation to improve themselves because: "Hey, HN said I'm smart and a talented engineer."
To drive the point home to viewers reading this, some of you may have applied to Google via their website. You did not get a reply. After reading this original post and the GP, please do tell me how smart you are and why your 10x programmer skills didn't catch the eye of Google recruiters (or Facebook, Apple, or any hot startup).
Saying that the hiring process is flawed isn't the same thing as saying everyone is special and deserves a job there.
From my anecdotal experience, I felt that they focus too much on algorithms and give the same interview to every candidate regardless of their experience or desired job. I made it very clear I wanted to work in embedded systems and write code for microcontrollers and they asked me questions about graph theory. Algorithms are not everything, especially for a company with such diversified technology opportunities. If I'm working on search, then sure. But embedded software? Can't they take the time to focus the interview even the slightest bit?
Not a big deal though. I know they have an endless supply of candidates and thankfully we as software engineers have a pretty good selection of places to work.
I'm not a Googler, but from what I hear, moving between teams within Google takes less effort than most places, so that might explain why Google tends to interview for a generic "Google developer" rather than a "Embedded developer" position. Who knows, you might progress from initially working on the Google home firmware, then move on to optimizing the search client code and then possibly the search backend for Home itself.
I'm sure there are a lot of specialists at Google, but I suspect those are fewer than generalists with a solid handle on data structures and algorithms.
Therefore it should not be a signal. Not getting a job because of an interview does not mean that you are not a qualified engineer.
It may mean that though. But it's not as if it's a 100m sprint where you can very easily measure results between Olympian and couch potato.
> https://www.amazon.com/The-Drunkards-Walk-Randomness-Rules/d...
Not that I'd want to work for Google anyway, I don't like them very much as a company.
It amazes me how they rejected so many people on this test over the years (seems to be over 90% rejections), when they can't keep it straight themselves. Granted they were always busy on other things, but still. Even I barely passed the test.
That being said, they left you alone for two hours while you work on it, sitting in the same environment where other devs are working, which I found much better than some other interviews, the worst of which was coding a full project on a laptop for a platform I haven't worked on professionally in over a year and was a bit rusty on, while one person stared at me from across a desk and a second person stood behind me and looked down at the screen over my shoulder.
How many rounds of interviews before they eliminated most of their staff?
1. That we can clearly and precisely define intelligence 2. That successful interviewing correlates with intelligence 3. That hiring people who can clear this gauntlet will generate more value for the company in the form of better products 4. That there is only one "bar" for quality
As far as I am aware, current research indicates intelligence is multi-variable and by extension there are multiple "bars" for quality one could measure. It also seems likely a team will be more successful if it includes people who are capable across multiple dimensions.
We're still in the very early days of Software Engineering. Why do we insist that the Landscape Architect must be familiar with the intricate details of HVAC Engineering?
This is where I call bullshit. This person prepared for six months. You can't tell someone to not take something personally if he or she took six months of their life to study up, only to hit a dead end because your company didn't find it within themselves to take control of the things they could have.
This is where it falls apart for me, though. Based on my experience, you really do need to be extremely sharp on data structures and algorithms, and you need to be able to do it at the whiteboard.
I have my own opinion on this, like everyone. Personally, I'm completely ok with requiring a data structures and algorithms "entrance exam" for many software development positions. I see it as similar to the vector calculus and linear algebra exam required of actuaries.
My problem is with the implementation. Actuaries take a well vetted exam, with a clear study path, and when they pass it, they get a lasting credential respected in their industry. In short, taking and passing this exam means they don't have to submit to potentially random and capricious (and unpredictable) exam based interviews (really, after 6 hours at the whiteboard doing programming problems why do we call this an interview? It's an exam, pure and simple).
Here's the thing - I'd do this for a lasting credential. I'd accept that this is a test I have to take, and properly study for. I'd take my 6 months, and I'd put in the time. What I'm not willing to do is take this test over and over and over, every time I interview at a new company. I just don't walk around with this stuff loaded into short term memory. I don't walk around ready to take my undergraduate data structures and algorithms test. And I think I've taken it for the last time.
Same for vector calc and linear algebra. I did well in these classes in college, and if I were interested in being an actuary, I'd study up and get back to that level I was at just before I took my exams in college. But no, I'm not interested in allowing a random person at a company to put me through the exams again.
This is why I'm pretty much done with technical interviewing and tests. I'll find some other way to participate in this field, or leave it altogether if that turns out not to be possible.
I do wish tech leaders, who so constantly bray about a shortage in our field, would recognize the extent to which their behavior and practices drive talented people out of programming and into other fields. They didn't stumble upon this shortage, they created it. And every crutch we give them just allows them to continue with business as usual.
But 1. i extended my knowledge 2. i came closer to working for google than ever 3. if you really wanna work for google / <company> you will try again and even optimize those superficial 'issues'
I truly enjoyed them bringing me out for the weekend before my interview so that I wasn't rushed and to give me an opportunity to see the area. I also enjoyed the interview process itself (well, right up until the point one of my interviewers introduced me to some math I had no chance of solving). One of my interviewers even stayed in touch with me after the process, checking in occasionally and helping me make some new contacts.
Today, when I interview people, I keep my Google experience in mind and try to provide candidates a similar impression of my firm.
I'd be happy to take a chance on a Google interview. What I'm not going to do is take 3 or 4 days of my very limited vacation time to jump through Google's hoops, along with spending weeks of time reviewing obscure algorithms I haven't touched since college, and will probably never use again.
Honestly, I think if the H1B and other loopholes these companies use were tightened up, the interview process for engineers would quickly approach the respectful negotiations common with other professional industries (law, medicine, finance, etc).
The OP did get hired -- he mentioned that in his first paragraph.
The OP was hired by Amazon, "we" refers to Google in this case.
They optimize to reduce false positives. They're completely fine with false negatives. They don't have any shortage of talented engineers willing to interview there.
That last bit is why I think it's quite silly for smaller/unknown startups to be copying Google's interview process, as seems to be the trend.
Getting too many false negatives is a very sure way of getting a lot of false positives.
>>They don't have any shortage of talented engineers willing to interview there.
You might be wrong there. Apart from huge money opportunities, there are little incentives for any body to waste their best years in large company political middle levels.
Why ? IMO if you reduce the False Acceptance Rate, you will up the False Reject Rate. Good chart at https://www.tractica.com/biometrics/in-biometrics-which-erro...
It's...amusing that you brush that off like it's nothing.
Not to mention things like job security(people have families ya know?) and that having Google on your resume is still a powerful boost for future opportunities. That might not be true someday, but for now it is.
It's the same with manufacturing. It's better to provide 96% reliability with warranty than to struggle with providing 99.9% reliability.
The tendency for engineering types to believe in "objective" processes for damned near anything that isn't measured with calipers is one of the bigger weaknesses in this field.
If you want to work for Google, my advice is to try again when you get a chance. IMHO, getting an offer is about 50% the luck of the draw as to what questions you get, and what interviewer you get. If you were close this time, you might get an offer next time.
If it makes you feel any better, people who I knew were smarter and better coders than me got declined, yet somehow I got hired.
BTW, I thought so little of the HR process that I refused to participate while I was there. I did not do interview training, and never did any interviews or committees in my time there.
The idealistic reason is that I didn't want to participate in a corrupt system. AFAICT, an individual interviewer is powerless to change the system. I've I'd have rated every candidate a must-hire, they would have thrown my feedback out.
The more practical reason is that I was a SWE embedded in a hardware group. Interviewing (and writing up the feedback) takes time. My spending time on interviewing would not have helped my boss (or his boss), so when I told my boss I didn't want to do interview training, he didn't care. This kind of paid off, because I got to spend enough time doing stuff my boss (and his peers/bosses) cared about that I got promoted while I was there.
Maybe this used to be true, but I don't think it's true anymore. It's very likely still true in the fresh graduate to early 20's age range of candidates. But at this point, senior engineers know what this process is about. And I think many are deciding to just avoid this process since it's very biased against senior engineers (who are rusty on DS and algorithms and don't have time to study it like a second job). So the flood of senior talent is probably less now than it used to be. But Google doesn't care. The main reason is, success hides all failures. They're still generating billions in revenue every quarter. Until those numbers change, no one is going to care about fixing a broken process like this.
Next time I look for a new job, I'm going to start with this list: https://github.com/poteto/hiring-without-whiteboards and give priority to companies that don't have this type of process. I hope more companies recognize that they can get a big competitive advantage for senior engineering talent by not copying the Google process.
Sailed through the phone interview, went in person for the day long interview. Most were no problem except for one that took longer than it should have. And then...
Nothing. Radio silence. No emails. No answered emails. I had ceased to exist.
After that colossal waste of time, I decided to only work remote.
Actually, that seems to be the standard behavior for rejected candidates these days, at least in my personal experience. (I've seen some references calling it the "California no", suggesting that the practice is widespread.)
It's really kind of annoying.
Never heard that before. That's going to be my new go-to phrase for this though.
I guess you'll never know what (if anything) you've missed.
> I'd end up working with a bunch of sycophants who are willing to do that sort of thing
You are implying bad intentions where none are likely to exist.
Google is a very large company, and 0.001% of candidates are bound to have suboptimal interview experience by sheer bad luck (and it's likely that you see their horror stories more than you see "I interviewed at Google, had a good experience, got hired, and now work on cool stuff with incredible coworkers" kinds of stories).
There, FTFY. :P
(used to be a Googler.)
* Well, that and eat tons of snacks and coffee. So it was actually pretty good.
I do. I've also done 200+ interviews.
> Googlers are known to come out to defend their employer on HN
Well, sure. It's not because Google tells us to defend it though, but rather to state the facts as we see them.
You understand this based on what?
Out of curiosity, I just went through my employment agreement, and did not find any such clauses.
> Horror stories come out, but few and far between due to this risk.
Or due to the fact that they rarely happen (I am not disputing that they do sometimes happen).
> the volume of Google defense on HN feels like astroturf.
Like I said earlier, since you are dead set to never apply, you'll never find out what (if anything) you've missed.
Which is why the "personal views" of a current company employee of any organization posted publicly is close to useless.
thesmallestcat claimed "that ex-Googlers cannot bad-mouth the company", and I claimed that no such clause exists in the standard contract of employment.
By the time you are an ex Googler, getting fired is unlikely to be an effective deterrent.
> Which is why the "personal views" of a current company employee of any organization posted publicly is close to useless.
Either you believe that the company is forcing me to write this (instead of just remaining silent), or your argument is not very logical.
The problem is that there are likely current employees with both positive and negative feedback about the company. However, you will only hear the former, because the latter would get fired for speaking. Therefore, at the very best, we have to assume your view isn't necessarily representative of the whole.
But more than that, I don't feel Google employees have a particularly balanced view about their employer. You can see my thought on the issue here, and Frqy3's response is succinct in the issue: https://news.ycombinator.com/item?id=14159213
But moving all the way back to the top of this chain, I do see a lot of bad interview stories with Google. Whether through malice or not, there is a lot of hoops to jump through, and as thesmallestcat indicated, people who don't have an incredible amount of enthusiasm for Google are unlikely to bother to continue the process. As it stands, each time one of those "horror stories" comes out, a variety of HN members often state that they would not want to work for Google, in part because of that process.
It's a bit of a moot point now, though. I've since switched to remote only, left the bay area, and bought a nice log cabin in the countryside.
Horses in the morning and no commute = a very happy me :)
Yeah....sorry, I can't afford to study for 18 months straight for a job.
I've actually had Google recruiters get back in touch with me a few times since then, but I wasn't ready to go through the gauntlet again. Maybe if I didn't have to study like a madman for at least a month beforehand to even have a chance.
1 - I will resign if Google hires this person.
2 - I don't think this person should be hired, but I could be convinced otherwise.
3 - I think this person should be hired, but I could be convinced otherwise.
4 - This person should definitely be hired.
(interviewers can use decimal scores)It's not like going in front of HC is an inquisition or anything -- they are just your peers.
Morpheus: he is the one.
Cypher: he is one. Steak please.
If you nail the problem right away but you don't talk it through with the interviewer you'll be scored lower. They want to see if you'd be a person they'd like to work with on the team, not the quiet person that never collaborates.
Your interface with the machine is only a part of the equation, and your interface with the team is so important.
Normally I'm a sucker for irony, but when they sent me an auto email a few weeks later asking _me_ for feedback (ie, a survey on the hiring process), I didn't find it immediately funny.
Those made me wonder if it wasn't for the best.
I'm not hating on Amazon but their recruiting process is by far the sloppiest of all big tech companies.
What I meant is that I can't recall any feedback like "personable, but algorithms needs work" or "code too messy" or "couldn't answer domain questions" etc. Just a general "sorry, please try again later."
To be fair, this was a verbal conversation from 7 months ago, so it may be there was something like that but I was too preoccupied with the bad news to write it down.
I wasn't given anything specific, but I was given fairly strong hints like "I think you know that the 3rd and 5th interviews were your best". I was told that they thought my communication was clear, and that while they didn't have any issues with my code, I could have been faster and a bit more fluent converting my solutions into code.
Probably boils down to what your recruiter is willing to give you, and how much you can correlate what they say to your interviews.
All in all a pleasant experience, though the luck of the draw part became very obvious. Were I to go for it again, I know exactly how I'd prepare for it. The key (in my experience) is to be able to hammer out that first coding problem in under 25 minutes. If you get to the 'second stage' where you're chatting to your interviewer and trying some additional toy problems, you're doing well.
In that case it's true, you generally don't get any feedback after you interview at big tech companies. I would recommend to do a mock interview to prepare and get honest feedback.
The second time, I think I was just lucky with questions I liked. I don't think my programming ability changed drastically in the year between.
It doesn't seem that way at other top companies like FB, Amazon and MS from the people I've talked to.
However, I think they have more in common than differences and luck is a big factor.
(There's even a term for this at Google: Impostor Syndrome.)
And so unnecessary. Think about it--it's Google. They should have enough data on me by now to know my skills and potential with high confidence, to the point where their interview shouldn't even need humans in the loop.
That's a good point. They should be able to determine all they need to with some machine learning based on my google searches for stackexchange and other related sites (with syntax checking filtered out).
Actually, that might be a good project. If you kept track of your google searches and presented that to your potential employer, let them see if the types of things you were working on were worthy or not.
I'm actually half serious about this.
> The talent is then picked up by a recruiter
Am i the only one who trips over such terminology of calling a hired worker "talent" and finds that it feels like it's manipulative, PC or doublespeak?
What meaning does the word "talent" have in casual English?
I don't think it's insulting, but it may be manipulative; it implies that the potential hire is a star performer and/or brings something unique to the role.
I don't think this is just her being nice; I was also told I was borderline and they actually ended up letting me interview again for a different position (SETI instead of SWE). Alas I got rejected again, but the year after they called me back because I was borderline, or so they told me, and I am working there now.
As others have said, there is some element of chance, both on their part and also likely on yours. Hopefully you'll apply again as it seems like you have a good chance.
When writing feedback, you simply look back at 20 other interviews where you asked the same question, and write "candidate X's performance on this question was was in {top,bottom} {5,25,50}% of ... at this level".
You also have no idea how other interviewers will score, and if your score is 1.5 when everyone else's is a 3.9, it's likely that the HC will ignore you.
The HCs do see multiple feedback from you and your peers, so they build a model of your feedback for themselves: P is a soft interviewer, so we'll adjust his score down but Q is a very hard interviewer so we'll adjust her score up ;-)
What matters is how your scores compare to other interviewers scores on the given slate.
> Not sure how the HCs "adjust" me.
Maybe they don't. Maybe you are the most precise and best-calibrated interviewer on every slate, and never make a bad call. Good for you ;-)
Is anyone getting accepted to Google at all? So many stories of applications which failed at some point. Calls, tests, onsite, over a month of teasing. Maybe person in his/her 20s has enough time and energy to throw away for something like this.
I have a feeling there's a significantly higher rate of failure for people who have been in the industry for 5-10 years and haven't had to most of the things they'd get tested on since college.
No offense, but then the job probably was not right for you (which does not mean that you would not excel at other roles, of course). It then seems that the interview might have served is purpose just fine and saved both you and Google from being cast into an unfitting position.
It prevents Google from having, say, more "iOS developers" than they need when they decide to concentrate on other products. We may debate the merit of this strategy, but as long as Google keeps this strategy, it makes sense to hire engineers who are willing to say "Well I haven't touched bits for a decade but let's see what we can do with them."
However, everything I was tested on was general SWE data and algorithmic questions. I never once got asked about anything iOS related at all. I remember one was a Google Voice question specifically, and another was a really strange converting 3D to 2D graphics conversion algorithm question that I'm still not quite sure how to tackle, and another was like reversing the bits in an image, I think, and I don't really remember the others anymore.
Also, if you go in for iOS, do not whiteboard in Objective-C or you will have a really bad time. I kept running out of space on the whiteboard because of its ridiculously long method names.
Simple example:
Objective-C: NSString *items = [[[NSArray alloc] initWithObjects:@"1",@"2",nil] componentsJoinedByString:@","];
Python: items = ",".join(["1","2"])
98 symbols vs 27 symbols. Over 3x as long.
Just to name a few: YouTube. Gmail. Hangouts. Calendar.
Regarding your interview experience - This is precisely why I turn down every interview request from Google. If you're contacting me about iOS dev experience, question me about that domain. I find the algorithm / data structures questions to be fitting for an entry level hire, fresh out of college.
If I was the interviewer and someone was honest about not knowing about biwise operatoons but was able to ask the right questions to gain some understanding I'd be impressed.
But don't you think you could have prepared better? Understanding code others have written is important and in my opinion asking about bits is not unreasonable.