163 comments

[ 1.8 ms ] story [ 236 ms ] thread
I didn't see you mention this, but the point of the coding interview is not to see how optimal your solution is (although it helps). It's also to see if you're a good person to work with.

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.

It sounds then like the interviewer ought to help solve the problem if engaged properly then. I would pull on then if stuck anyway haha.
I agree with you. I put more the emphasis on the optimality of the solutions because that was the feedback from the recruiter. During the interviews, I made sure to talk through the problems indeed. That is a whole skill in itself.
I concur with this. You might be best coder/analyst/techie in the universe, but it is impossible to work with you, then you are useless.

Your interface with the machine is only a part of the equation, and your interface with the team is so important.

The point of the coding interview is whatever the interviewer thinks it is. Sure, it SHOULD be to see if you are a good person to work with, but that's not always the case, if the interviewer thinks that you should produce a working and optimal solution(for whatever reason), that's what you will be judge on. Unfortunately not everyone uses the tools at their disposal in the best way. And it might not even be a case of intentionally doing it wrong, it might be that the interviewer doesn't know any better. If you take an experienced dev and you put him to make interviews he will not always know the best practices to interview someone.
For Google that simply isn't true. Check out Work Rules some time. Google has put a ton of effort in having a repeatable hiring process that specifically avoids this problem of interviewer bias. Most people, even Googlers do not really understand their hiring process and how it works. It isn't to hire the best coders.
(comment deleted)
At least they give you some feedback in the end. I had the experience to be rejected after an onsite interview at Amazon, and they did not take the time to give a word of feedback, after I even asked for it. I see the past interviews were of great help to you to finally get the position at Amazon. I am looking forward to read your third post. Complimenti collega!
I had the same experience with Amazon--dinged with no feedback.

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.

Bonus annoyance: After rejection, get 15 contacts from Amazon recruiters in the next 5 months.

Those made me wonder if it wasn't for the best.

All from uncoordinated business divisions! And I've heard it also happens when you got an offer (while waiting for your visa/relocation).

I'm not hating on Amazon but their recruiting process is by far the sloppiest of all big tech companies.

No feedback has been the norm, in my experience. Can be frustrating when the company asks you to invest 4+ weeks on phone screens, take-home projects, and in-person interviews, and then emails you a form letter rejection and cuts contact.
Grazie :) Getting zero feedback sucks, but as far as I understand it, this is a way to cover their asses from lawsuits. Basically, if you don't get hired, and x gets hired, and you happen to know that your feedbacks were similar, then you could claim that you have been discriminated on. This is especially true if, say, you are black and x is white, or similar.
I never got any feedback from a Google onsite, is that new?
This should never ever happen. How long ago was this? I work at Google. I can try to follow up for you.
Are you sure about this? I believe for liability reasons no feedback should ever be given, aside from the generic "you were very good / very close" just to make people feel better about themselves.
If you mean communication over the process, don't worry, I got the "regretfully decline to proceed"-type phone call afterwards.

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 see. I misread your comment, because there was another comment which said they never heard back from Google after their onsite.

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.

I did get (prompt) feedback. I got an initial email with the rejection, and my recruiter scheduled a follow up call.

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.

As always, remember that even technical interviews like this one have an incredible amount of random chance built into the hiring process. This is especially true at a big company like Google (where I work and do interviews). Do they happen to have positions open right now? Did you happen to get asked questions that clicked with you? Was the hiring committee feeling grouchy that day? Did you get an especially harsh interviewer for one of your questions? Did they just hire someone with your skillset and so don't need a duplicate right now?

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.

I agree with the noise of the process. Actually, the whole experience was a good one for me, maybe I didn't express it in the post? Anyway, I got a job in Amazon UK at the end, so not too bad.
"not too bad"? Understatement of the year! ;) Congratulations on the job.
I was unsuccessful in my interviews with Google several years ago, but left the process more impressed with the company and its employees than when I started. As a candidate, they were incredibly respectful to me, even when it became clear I wasn't the right fit for the roles they needed to fill.

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 agree. After I have interviewed and seen Google pass on a candidate, I sometimes feel I was lucky in my interviews.
One of the most frustrating things I've seen is that interviewers/recruiters themselves couldn't stand up to the same rigor of questions which they expect from applicants. In one such company, I asked a question on "algorithmic fairness, accountability and transparency" about core algorithms they used for their business. First, it came across as a bit of a rude shock to them - they hadn't heard about it. Second, they parroted a line which was along the lines of "our legal team looks into it and makes sure it is legal". Third, when pushed about the fact that my question was not on legality - they refused to accept that they may have overlooked this part or were not aware of it. Rather than engage in a discussion, when the boot was on the other foot - they wanted to weasel their way out of it.
I've worked for a company that's given pretty much the same two hour on-site test for years, and several times the people in charge of the hiring decisions have forgotten how to do parts of it (it's an open office, I've heard them admit it to the candidates).

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.

>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.

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.

> 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).

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).

I believe what he was trying to say is that there is a large factor of chance involved with interviews.

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...

There is a large factor of chance if you're a marginal candidate. But if you're very bad, there's no chance, and if you're very good, there's a very high chance.
Good at interviews? Then yes...
On the other hand some of us know we aren't top class engineers and don't actually care, I'm content with been good and careful over been 'Google' class.

Not that I'd want to work for Google anyway, I don't like them very much as a company.

I failed my first interview and managed to get it on my second and so did a number of engineers at Google, Facebook .. you name it. The point is these interviews are intended for zero false positive and are very likely to result in false negatives. "Not a getting a job" alone doesn't state anything about your quality as an engineer and regarding catching recruiters eye, I know a ton of people who didn't get any responses for job applications in college, but a year or two at a good role made recruiters flock to them. My two cents would be there is always room for growth in software engineering and your work is the only signal that you should rely on. (coworkers, open source contributions etc). I wish there is a way to evaluate people solely based on their but unfortunately that utopia is far.
I was rejected from Google when I first graduated from college. Now I work at NASA and I'm very thankful I didn't get that job.

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 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?

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.

They are starting to take into account area of expertise, like in the article, they offered 2 Android-specific interviews as a different process. You'd still have some algorithms, but at least the other 2 would be for embedded if that was your area.
I think what he was trying to say is that it's not an binary relationship​.
I used to work with someone who now works at Google. He was the sole lead for a project that he absolutely butchered the code before bailing out. I was left to clean up the mess which took many months and then continuing to finish the project to completion to the satisfaction of the end customer. I can certainly say he was not 10x programmer but perhaps he found some niche role there that he can contribute towards.
you missed the context. OP was describing ways in which qualified candidates are rejected anyway because, in that particular time and place, there were even better candidates also interviewing, or that the teams that were hiring changed their priorities, or whatever.
What a sad world we live in where you define your "quality" as your worthiness to serve someone else. So pitiable.
I wonder if google had to reinterview their existing employees, in a blind study...

How many rounds of interviews before they eliminated most of their staff?

Once upon a time, a hiring committee was presented some feedbacks and had to come to a yes/no decision for some candidates. All them were rejected. It turned out that the feedbacks were of the hiring committee's members, from when they got hired.
I've heard this before, is there a source for this? It has all the hallmarks of an urban legend...
(comment deleted)
I don't have the source anymore but it was an article where they spoke to someone at Google HR who mentioned that a particular team was difficult to approve anyone or hiring. To prove their point, they anonymized the team's own resume and asked them to rate them.
I saw a lecture (about tech interviews) by a former Google engineer who at the time was working at Etsy. He mentioned that the experiment was performed on him and his team. The hiring committe he was a part of had acquired a reputation of being particularly difficult to please. They ended up rejecting all of their own hiring packets. I was skeptical when I heard the story. Google must do a fantastic job anonymizing the hiring packets that get reviewed, or maybe they had been at Google for a long enough time that they forgot their own process and didn't clue in. However, this engineer did mention it so it doesn't seem to be an urban legend to me. With some clever searching I'm sure you can find the video.
This is good if you assume that there's a desire to improve the quality bar over time.
You are making several assumptions:

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?

Maybe they saw a bunch of people with outdated skills?
You think a company like Google would be able to implement a non-subjective and fair interview. Their current process must cost them a lot of talent
I doubt they are lacking good resumes. They can afford to miss good people
> Their current process must cost them a lot of talent reply

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.

Maybe it's part of the process. It's easier and cheaper to maintain good image to get people interested in working for Google (improving workforce supply) than to optimize the interviewing part.

It's the same with manufacturing. It's better to provide 96% reliability with warranty than to struggle with providing 99.9% reliability.

(comment deleted)
>>They optimize to reduce false positives. They're completely fine with false negatives.

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.

> Apart from huge money opportunities

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.

this is good analysis. Google does things that make sense for Google. unfortunately because they are prominent many companies that aren't Google copy Google's methods uncritically. it's a disaster. I can't tell you how many times I've cringed at small tech companies that run a glorified e-commerce website interviewing candidates as if their engineering staff is 1000 instead of the 8 that it actually is.
There's no such thing as a non-subjective (the word you're looking for here is "objective", I think) and fair interview. That's part of why it's so difficult. Everybody has a bad day--interviewers and interviewees. Some people can talk out a problem better than they can whiteboard, others the reverse. It is a wheelbarrow full of conflating factors and there's no magic bullet for it.

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.

You also have to consider the cost of hiring the wrong candidate. That can often dwarf the loss from missing out on a good candidate. The other option is to hire less stringently but use trial periods which have their own problems.
The randomness factor is a huge problem for Google and similar SV companies.

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).

"If we didn't get lucky enough to hire you, someone else will quite soon."

The OP did get hired -- he mentioned that in his first paragraph.

"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.

I was referring to the"someone else" not the "we".
> 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.

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.

I did the same and failed. I failed in a very specific way which annoyed me a little bit and which left me thinking how superficial this process is.

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 interviewed at Google with a no-hire. I asked for 3 weeks to brush up on algorithms and data structures. I should have asked for 3-6 months.

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.

I'm becoming convinced that the only way to get into Google is to get in as an intern or new grad if OP studied for 6 months and still didn't get an offer.

It doesn't seem that way at other top companies like FB, Amazon and MS from the people I've talked to.

Meh, just try again in a year. High variance.
(comment deleted)
"Just try again in a year" is a good option when you're young. But it gets less attractive as you get older, especially if it means abandoning an interesting project or senior role you accepted after "Company X" rejected you. There are too many good opportunities out there to get hung up on any one company.
I've lost track of the number of times I've gone through the interview wringer at Google. It sounds like a great place to work, which is unanimously confirmed by a number of people I know who work there, but I'm no longer going to go out of my way looking for the chance. Prepping and going through the process is like a second full-time job.

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.

I could only imagine the legal shit show that'd occur if they tried to do that, however amusing and novel the idea may be.
> 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.

Actually, if you are a Google intern and want to become a full-time engineer, you still need to pass two interviews. While preparing, I found a ton of stuff on Quora, take a look there.
Think of working with people who are of the opinion this sort of hiring process is good. It attracts a certain type of personality.
I got hired by Google, but didn't get an offer from Facebook. There are some differences in the process that could lead to a different outcome sometimes.

However, I think they have more in common than differences and luck is a big factor.

I got into Google within 2 years of completing a graduate CS degree. It's been nearly 10 years since I've been in school, and I doubt I'd be able to get into Google again.

(There's even a term for this at Google: Impostor Syndrome.)

Imposter Syndrome is a general term, it wasn't invented for Google.
I think the point is that inside Google, some people think of themselves as impostors. Yes, it's a general term.
For those of you not familiar with what a "2.7" means on the Google hiring scale, the rough scale is:

  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)
Right, with 4 being basically impossible to get, and scores being normalized wrt the history of the interviewer.
I haven't worked at Google, but I have interviewed with and reviewed feedback from Xooglers, and 4's are not impossible -- but they are rare and you have to essentially be smarter than your interviewer about the particular problem to get one. This can be pretty hard, since many interviewers pick problems that they are extremely familiar with.
On my Google onsite (in Zürich as well), one of the interviewers told me that if he gave me a 4.0, he'd have to argue on my behalf if the hiring committee wasn't sure of hiring me.
Arguing to HC on behalf of someone I gave 4.0 (which is rare, and which I did give a few times) is something I would do gladly (and I expect most others will do as well).

It's not like going in front of HC is an inquisition or anything -- they are just your peers.

Googled the matrix.

Morpheus: he is the one.

Cypher: he is one. Steak please.

4.0 is more like: I'll give up my job to get this person hired, she (or he) is that good.
(comment deleted)
Is that photo of "Google" really the culc at Georgia tech?
That does look pretty similar! But I think the CULC has more glass and brick on the outside.
At google, I was given some code that manipulated some bits and the interviewer, in inexplicably terrible English, kept asking me what the purpose of this code was for. He has a very thick Eastern European accent which was not understandable and I don't know how he was able to get into interviews. I could tell it was doing some sort of overflow detection but other than that I had no idea. I hadn't done anything with bits since college. He kept insisting that I keep trying to understand what the code was doing even though it was obvious I had no idea. After a 40 min, excruciatingly awkward conversation we moved onto his next question which I also couldn't understand due to his terrible English. What a complete waste of time.
I'm sorry that this happened to you.

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.

The interviewer really should have wrapped up the question in less than 40 mins if it was obvious the candidate was not doing well.
> I hadn't done anything with bits 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.

I really wouldn't make that conclusion until you knew what job he was interviewing for. Firmware development? Sure, you might be right. iOS developer? Unlikely that low level bit manipulation is going to be a good indicator of his ability to succeed in that role. That's not to say its irrelevant, but, just not a quality indicator for that role in my opinion.
Maybe Google hires firmware developers, but I think they don't hire iOS developers. They hire "software engineers", and throw problems at them. (Or rather, these generic software engineers migrate toward problems that interest them in the long run.)

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."

There is always going to a problem that you haven't done before or haven't done for a long time.

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.

This isn't really disagreeing with you, but I was contacted by them specifically for my iOS development experience. They have several iOS apps, and they do have a demand for that type of work.

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.

I've never chosen to interview with Google but I have been approached by Google recruiters on multiple occasions for iOS development. To say that they don't have a need for iOS engineers, is clearly erroneous. Google has a number of iOS apps.

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.

(comment deleted)
Thick accidents and borderline language proficiency is even worse on phone screens, where interviewers always seem to sound like they are talking through a sheet of plastic placed over the phone. I've lost count of the number of times I've had to get someone to repeat their question over and over and over on (not Google) phone screens. Once did a phone screen with an exec who I'm pretty certain was conducting it from his handsfree in an open-top convertible car (clearly heard traffic noise). I've always wondered how many opportunities I've missed out on due to poor audio quality.
I have a very hard time with accents. I've done a couple of phone interviews where I hardly understood a single thing the candidate said. In those cases I usually write my question verbatim in the shared document and focus on the code the candidate produces. It has probably hurt the chances of at least one or two interviewees.
I had a similar experience my first time, but I applied again a year later and passed. I did study algorithms (mostly DP and graph stuff) via HackerRank for two weeks before each onsite, but I never did fully succeed with any of the algorithms questions.

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.

Xoogler here:

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.

Why didn't you participate if there was room for improvement?
Two reasons:

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.

There's definitely a lot of randomness in any Big Tech Company interview process; I don't think Google is particular in that regard. I'm at roughly 50/50 in offers/rejections from companies in that tier (the Googles, Amazons, Facebooks, Twitters, etc.) and I don't feel like my performance varied very much between interviews.
Better than my interview experience.

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.

I had a similar end result from Facebook, I assume I did not pass but never heard back from my recruiter.
Yep, had a video-interview with FB too. Didn't hear from them after that.
My experience is the polar opposite - I've had updates before and after, even just to say sorry it's taking so long (4 days isn't long to me). It must very much depend on who is taking care of you.
Hi, I work at Google. I am sorry for this. This should never happen. How long ago was this? I can try to follow up on your behalf.
Reading people's accounts of interviewing at Google, I would never apply, and I won't cash in on the recommendations I could get from some ex/Googlers I know. Reading the submission, look how many times the candidate has to "ping" people just to keep the ball rolling. In my mind, I'd end up working with a bunch of sycophants who are willing to do that sort of thing, the same sort of people who got a thrill out of the strategy involved in applying to Ivy Leagues. Google does some great work, but man do they carry a stench.
> I would never apply

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).

Do you work for Google? I hate that I have to ask this, but Googlers are known to come out to defend their employer on HN, for better or worse.
> Do you work for Google?

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.

On the other hand, I understand that part of the employment contract is that ex-Googlers cannot bad-mouth the company. Horror stories come out, but few and far between due to this risk. Google's certainly not alone in having clauses like that, but the volume of Google defense on HN feels like astroturf. So that's where my cynicism comes from.
> I understand that part of the employment contract is that ex-Googlers cannot bad-mouth the company.

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.

Seriously? Maybe you're an exception, but it's not like a search for "google employee nda" returns nothing. It's been discussed on HN as well.
Google NDA covers (non)disclosure of Google confidential info. It has nothing to do with "bad-mouth"ing before or after termination of employment.
Perhaps not, but if you say something negative about Google, and it gets a lot of attention from the public, I think you can agree that you're probably going to get fired. Let's be real here, NDA or no NDA, this is true of working for any company.

Which is why the "personal views" of a current company employee of any organization posted publicly is close to useless.

> I think you can agree that you're probably going to get fired.

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.

Ah, I do see thesmallestcat mentioned "ex", but as the topic was you, a current employee, that seems to be an error on their part. (I don't think the topic at that point was applicants, who would not have signed an NDA at that point, and the conversation had since moved to "Googlers defending Google on HN".) Correct me if I read this wrong.

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.

> "I interviewed at Google, had a good experience, got hired, and now move protocol buffers from one directory to another every day"

There, FTFY. :P

(used to be a Googler.)

* Well, that and eat tons of snacks and coffee. So it was actually pretty good.

I had a great experience interviewing at Google and most people do. Google has millions of applicants per year, some of them are bound to have a bad experience.
Nov 13th, 2015.

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 :)

> Nothing. Radio silence. No emails. No answered emails. I had ceased to exist.

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.

> the "California no"

Never heard that before. That's going to be my new go-to phrase for this though.

I once worked for a company that is greatly respected in IT industry. While their engineers were top notch, the non-technical ones were... let's just say not so good. It was common for a recruiter to forget about a candidate (even a good one who passed the interviews!). One guy got positive reply 3 months after his interview. I imagine there may be similar mess at Google too.
Sounds like IBM from 20 years ago... except they would call to just set up a screen interview 4 months after the resume submission for a specific position.
I don't think that's standard for them. I did get a phone call for my rejection from Google after my onsite, after a couple of weeks. They actually told me to study for 18 months and try again, that many people do that and get in the second time.

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.

> The recruiter also said I was borderline, which might be just a nice empty word from her, but made me feel better.

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.

I've heard of Google hiring committees rejecting candidates who got all "Hire" recommendations from the interviewers. I've also seen candidates get hired who seemed on the wrong side of "borderline." There are many more factors at play than just your interview performance.
I'm curious if the people giving the interviews have an incentive to be conservative with scoring. Maybe it looks bad when your score is the highest? As if you're lowering the bar? If true, I could see that contributing to how these interview stories play out (candidates thinking they did better than their no-hire outcome).
Scores are normalized so it doesn't matter. If you always give a low score, that score will count more after normalization. It would be interesting to know how they treat outliers: for example, if you give always scores 1-2.5 and then suddenly a 4.
There are no such incentives.

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 ;-)

My hires are uniformly distributed across the score spectrum. Not sure how the HCs "adjust" me. I have gotten props for the quality of my written feedback though.
It doesn't matter how your candidates are distributed across the spectrum (and I do hope that your hires are not uniformly distributed ;-)

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 ;-)

> Alas, rejection

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.

Yes people are getting jobs. It's just the ones that don't who write the blogs that get up voted. Many college seniors I know have gotten offers without preparing that much outside of their usual work
Well, college seniors should have the easiest time getting a job at Google, since they are closest to the material that Google tests on and would have it fresh in their minds, so I wouldn't be surprised that many of them do get offers.

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.

> In this model, the sourcer discovers a talent

> 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?

It's jargon from show business (movies, music, TV, stage, etc)- the "talent" is generally the performers or maybe just the star.

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.

It could well be, as a non-native speaker I'm not aware of such shades of meaning. It sounds a bit "TopTal speak" to me. Probably I picked it up subconsciously as I was skimming my TopTal post during writing.
Does anyone know how Google's interview looks for QA/Software engineer in test?
What other professions are like this? Do lawyers, accountants, civil engineers, bartenders, etc. take massive time to memorize stuff every time they want or need to go job hunting?
A friend of mine was shocked when I told him how things are looking for a job in the software world. He's a civil engineer. I guess it makes it easier in their world owing to accreditation and certs. He just found it astounding the amount of prep time it takes your average dev to get ready for an interview.
It seems many acknowledge that the Google process (and other similar ones) is very flawed with a high false negative rate, but it's considered ok because there's a flood of talent always applying to Google.

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.

Of course processes are biased in favour of hiring grads. Graduates are awesome from an employer's POV. They don't know their own worth yet, they don't have families competing for work/life balance, and they're eager to prove themselves. So you can pay them a pittance to burn the midnight oil crunching through the most miserable parts of your workload.
My experience: I applied for an open position at google on their website, during the university, an interview was arranged after some mails, I was positively surprised by their care of detail: about setting the inteview at right time during the day for me, wow!. When I recieved the call i was suprised, but because call me at wrong day, at wrong time, It was on dinner on my time, and I drinked a couple of beer, it was stressful, the interview was difficult and unsuccessful, after a couple of days by mail told that inteview was not successful. I'm from italy, here the company adopt the Hollywood Principle: “don’t call us, we’ll call you”, because there are too much applicants and few good jobs. I digested: maybe I'm not good for the position, but also them are not perfect, but at least they try to be gentle. After a two of year I recived a mail for an interview, I was suprised because I did not solicitate it, I was very relaxed because I was discard the previous time, so why this time should be different? (I'm fine that better developer exist), the interview seem goes easily, at the end interviewer ask me where I'd like to work if I could decide and describe some offices on google on different coutry, It was too exciting to be true, and replied all are the same for me, but why you call me, on the other interview I was discarded, he was suprised, told some 0info and asked some info on precedent inverview. Also this time I was informed by mail that the interview was not successful. Lesson 2: I thinked they call me by error, so two mistake in two interview:. nobody is perfect.