Help wanted: Google hiring in 2011
googleblog.blogspot.com
googleblog.blogspot.com
They contacted me again the following year and I asked never to be contacted by Google HR anymore. They are unprofessional and almost disrespectful. And for jobs paying below industry average. Don't waste your time.
It first gives a bad impression if you are rejected, and maybe even worse, since you don't know why you are rejected, you don't know whether you should try reapply later, etc... so they loose a few good potentials I guess.
...except for the 99% of applicants they reject.
GP: if they get 1,000,000 applications and 4500 people join: that's a 99.5% rejection rate even if you assume no one turns down the offer.
I look at a place like Google the same way I looked at grad school. A place to go where you can hopefully meet a co-founder :)
http://www.cnbc.com/id/39710609/Warren_Buffett_Buying_Berksh...
Google gets resumes and random text from 1000s of people a day looking for a job, all over the world, completely bereft of any sort of qualification. That's the vast majority of resumes any large business like Google will see. It's like Spam writ large.
So we have resume screeners who look at those random resumes and try to separate wheat from chaff. For some, we have a phone screen that is literally to check the most basic of facts to see if the resume is at all consistent with the name at the top, then a real phone screen with an engineer, then an onsite, then offer.
Each step loses people, but the first, separating the clear bs from the real is where the huge gap comes from.
That said, I hope we have more false negatives than false positives every step of the way, and for that, all I can say is that I wish it didn't have to be that way. Well, that, and this: Get referred by a Googler, skip many of the above steps :-)
I forgot to add this: the most recent interview that was discouraging was with a large travel-related company. A recruiter reached out to me (so, I didn't even apply), gave me a few questions to complete that I spent hours on. I worked super hard, typeset it in LaTeX, and figured it was way beyond what they normally receive from candidates. The recruiter even told me they were very impressed. I went in to interview, chatted with some engineers (and I even taught the second guy a few things, like the rename command), and never heard back. I emailed the recruiter and asked why. The recruiter said that the team simply needed to hire a senior candidate. I felt stupid for wasting my time.
Something similar happened with Jane Street; they wanted solutions to questions in OCaml. I spent a long time on the problems, submitted them in Scheme, Python, and OCaml, all using recursion, higher order functions, etc. After submitting the code, they turned me down.
Yelp also turned me down after I spent a long time on the problem they gave me. I did what the problem asked, including writing unit tests. It was fun to write since it was in Python, and I like Python. But again, turned down after submitting the code.
Also, I figured it wasn't a problem with the code, as I had friends who were hired by Amazon and Google review it and they said it looked fine.
These are the types of things that are making me want to stop interviewing.
What I'd like to do is become more active in the HN community, and eventually start working on projects related to studying Japanese or learning about Japan. I'm working on a small project now that will show a new Chinese character per day, because kanji-a-day.com is currently the top result in Google for "kanji of the day", and it's not nice looking.
and thanks for taking an interest in me
And thanks, my team and I worked hard at the competition. I always thought it was kind of cool that had a post about us on the White House blog. The website is down now, so here's a cached copy:
Startups and small companies like Twitter, GitHub and Heroku are going to be there. I think registration is already closed, but maybe you take down the list of companies and apply to a few specific ones you like directly. Yeah, I know how the job market is, but often there are many cool companies that are overlooked because they don't have the 'brand names' like Google or Microsoft.
Is this part of the change in leadership-think at Google with Larry taking the reins? I know that Wall Street had a huge allergic reaction to the numbers Google had been posting in r&d/hiring/talent. And I think Google backed off for a while on all that to their detriment. Now with new leadership perhaps we will see a renewed vigor to solidify talent.
Talent, by definition, is scarce. Time will tell.
The process was grueling however and I know a large number of my highly competent friends never made it through. Some of it is due to Google having a policy of "assume the worst" in order to try and reduce the number of bad hires but I think some of them was as the interviewers were too harsh. One of them had a phone interview ended almost immediately if not getting (what to me seems like a trick) question.
"Given an infinitely long linked list which you can only traverse once select a random item with O(1) storage."
Google tried to get me as an intern again the following summer but I'd decided to instead intern at a local startup[1] that are doing well. The CEO trusts me, gives me enough power to really help the company and is showing me how a real startup works, both good and bad. It's an atmosphere that Google just doesn't have anymore.
To be honest I do miss a number of things from Google, such as the stunning internal developer tools, the academic/computer sciencey atmosphere and the amazing people but I still far prefer the startup I'm in currently. I just don't think Google registers as a startup anymore.
My shot: pick some random number, go through that many linked list items and return the item you're at. Only needs to store the current item pointer and the random number. Maybe I'm missing something simple, though to be fair, it's a lot harder to answer these kinds of questions when you're under the scrutiny of an interview.
If the goal of the question is to select a random item where all items have the same probability of being selected, it's impossible. If you're willing to ditch even distribution, then one answer is:
value pickRandomItem(node* list) {
/* Always return first item. */
return list.value;
}
Or maybe I'm missing something here?This question seems ill-defined. Assuming you interpret "random" as "have an equal probability of returning any given element", then the probability is 1/infinite which is undefined.
I think there could be three possiblities:
A) The interviewer was baiting your friend into trying to elaborate the problem, in a "my client is asking me to do something absurd but I'll try to piece out his actual intent" sort of way. If so, you could come up with some hypothetical scenarios this algorithm would solve and show how actual problems would have actual bounds on how far the random window needs to go.
B) You could be remembering the problem wrong. It could be "Given a finite linked list whose length you don't know a priori..." instead. This is much more tractable as a stereotypical tech interview question.
C) Return the ninth element. http://dilbert.com/strips/comic/2001-10-25/
The issue was more that when my friend didn't get it within about a minute the interviewer decided the interview was over and hung up abruptly. If the question is "select a random element from a linked list of finite but unknown length that you can traverse only once" then yes it's at least solvable but I don't think it's a reasonable interview question to demand in less than a minute when the question was additionally ill formed to begin with.
I assume they meant arbitrarily long instead of infinitely long. In which case, I just wrote that code today:
val := nil
for i, x in range a {
if rand.Intn(i+1) == 0 {
val = x
}
}Base case: In a one item list, the first element is selected with probability 1.
Induction: Assume we've picked an element uniformly at random from the first n elements. When we encounter the n+1'th element, we pick it with probability 1/(n+1). Thus, we now have a uniformly random sample from the first n+1 elements.
What would we have done if we knew the length? We could pick a random number between 1 and the length, and then traverse that many items to get to our random item. Since we don't know the length, it means the question is, how will you know where to stop?
Constant growth for storage means you start with a fixed number of slots (lets call this number X) and keep them through the process. You could put items into these X slots, such as one out of every ten that you pass. That would mean you could pick items by rolling a 10-sided dice that shows a 10, and put them into one of the slots.
A problem is that you would have to remove past randomly-selected numbers to make room for new ones, and you would be biased towards items that appear later in the series. This would not be random.
And what about a string one character long (in this case, we can pretend we had been given an array, a string, a queue, or whatever) ? What if, at the start, we always select the first item to be the random choice? That would mean that an abrupt stop would give us the correct answer for a length of one. Another interesting thing is that we can store item one into a single container, instead of needing X (where X is a constant) slots.
What about two? Well, we would compare the container with item two and decide that the random choice for the container should be either what it already contains (item one) or item two, with a 50/50 split. Great! So our algorithm works for a length of one as well as two.
This is starting to feel like we've established a base case (what happens when the list has only one item?). We may be on track to show that constantly looking at the next item and comparing it to the one in the container may just work. If so, we could have a proof by induction.
So if we were at item three where the whole list is only three items long, then a random generator would have picked it with a probability of 1/3. So if we're comparing item three to whatever is in the container, then if a 3-sided dice rolls a 1, we can set container to be item three. That works. But what about the other 2/3 chance, where it could be item one or two? In that 2/3 chance, we pick the container. The container contains only one item (the first or the second, whichever one won the first coin flip previously.) For this to be a valid idea, both item one and item two should have had a fair chance to be in the container currently with a 50/50 split, correct? And we know that it was.
So when we come to item four, we replace the container with item four with a probability of 1/4, or use the value in the container with probability of 3/4 (e.g. 1-1/4 = 3/4, or the rest of the time.) The point is that at each step, the container contains the random value of the previous n-1 number of items.
(1/p)((p)/(p+1))((p+1)/(p+2)) ... ((n-1)/n))
e.g. the fifth element's probability in an eight-element list is
1/5 * 5/6 * 6/7 *7/8
Since the numerator of each successive term cancels out the denominator of the last, the product is always 1/n.
http://stackoverflow.com/questions/1840618/fast-random-selec...
BTW, this actually is a practical question, because it's isomorphic to "How do you select a random element from a stream of elements when you don't know the length of the stream a priori?" This is crucial for many online algorithms. For example, imagine that you're FaceBook and you're trying to display a News Feed of a massive number of events coming in from a large number of apps. You don't have the computational power to handle all of them, and so you need to drop some of them on the floor. How do you fairly drop events and display only a random sampling of them?
I do not know what the current salary/options numbers are but is it really high-reward for the top notch engineers they are seeking at this point in the game?
However, it is known for engineers working on successful teams and products to obtain additional grants that can lead to them leaving Google with several $million worth of stock.
I'm not sure if slewis's 'absolutely' answer is based on something like the latter - in which case you have to make sure you are working on high-value projects that are going somewhere.
But you are competing against 'top-notch' (to quote op of this thread) engineers for those types of awards. You'll also sometimes hear complaints about politics in the promotion process. It seemed mostly fair to me based on the promotions of engineers whose work I was familiar with.
My impression is that it's no so much "encouraged" as required. "Publish or perish" (academia), "up or out" (military), and "20% time" (Google) are all roughly equivalent. Roughly.
The unfortunate thing is that Google wants to avoid their system being gamed.
There can be some luck of the draw both when it comes to recruiters (mine was excellent) and interviewers. Effort is made to normalize for that sort of thing but no system is perfect.
My experience has been that the top tier companies are all selective and keen to avoid false positives. Google is really no different in this regard.
I can say that being a Googler of only a few months now it is an amazing place to work and well worth the effort, frustrations notwithstanding.
[1]: http://www.cforcoding.com/2010/07/my-google-interview.html
> My experience has been that the top tier companies are all selective
> and keen to avoid false positives. Google is really no different
> in this regard.
That's not what I've seen. One of the dodgiest tech managers I've ever encountered went to work on a very, very senior tech development position in Google. This guy regularly spied on other manager's email inboxes every night (disrupting regular email backups) among other things. He had no qualifications other than being political and a bit lucky. Zero. The team he left behind improved a lot afterwards (and he quit suddenly, being very irresponsible.) The delusion of googlers is ridiculous. A big part of getting to Google seems to be plain luck with moment/position and interviewers/HR involved. Outside Mountain View and a few teams here and there (like V8/Chrome), Google is just another big software/advertisement company.The Munich office is also growing, so if you'd like to work for Google in Germany, now is the time to apply :-)
Unless you're looking for something very specific?
Compare to: “Engineer” (3), “Develop” (1+) and technology name-dropping.
I expect 2011 to bring more of the same from Google.
Chrome has by far the best UI of any web browser I've used. Google Search has the best UI of any search engine I've ever used. Google Calendar has the best UI of any electronic calendar I've used. And so on.
Do they have as good UI as a specialist graphic design company? Maybe not. Against any tech company however, they stack up pretty damn well, despite what Gruber might claim.
But a counter-example or two doesn’t disprove the rule.
Have you used AdWords lately? Discovered any pain points? My complaints are pretty numerous, and that’s the #1 cash cow.
1) The ability to group tabs by subject area. I try to this with multiple windows now, but I still end up with a pile of mess on my hands.
2) Vertical tabs. Most of the sides of my browser pages sit unused anyway, and when I have 30-40 tabs open (typical) I can never find anything. Vertical tabs would let me at least see the names of the page titles. Right now I don't even see the icons everything gets so smushed up.
Other than that, keep up the great work! Chrome is by far my favorite browser. I feel pain, deep inside some organ someplace, whenever I have to use another browser.
Oracle? Something else?
The other direction is a combination of hard and unsexy. VMWare had the highest base pay in the Bay Area when I left. I'm in Australia now and it seems like the highest pay for a software developer is to work with a mining company. Of course, if you are in NYC, there's always some financial thing.
Then again, I'm on the market and have been poking around and thought the proposed compensation at places like Apple and Google was pretty good. If your career goal is a stable job that pays $250K a year, software isn't the right field.
(If you are a good engineer) You'll be bored out of your skull and you'll drown in middle manager games and meaningless meetings. But they pay very well.
They can, but they do not. The average salary may be lower as they hire more engineers out of college, but if you're an experienced engineer and have other offers, you'll get a good deal. There is, however, another other angle: they want 99 percentile talent, but are in the 75th percentile compensation wise. So a $130,000 ($100k + 30% bonus) at Google could easily be $150,000 elsewhere. However, this market value may not be realized until the said person has been at a 'brand name' company i.e., some will leave because having been at Google has made them much more valuable in the eyes of employers.
> Oracle? Something else?
Oracle pays worse, actually. Unlike Google and other companies, they also have strict rules about salaries for people with X years of experience: many excellent engineers left Oracle (and yes, Oracle can attract excellent engineers -- mostly to their database and middleware divisions) because they were told by their managers they wouldn't be able to receive any recognition for their work until they have spent N years at the company.
I had just spent 2 years working for a very large software company as a research engineer after the startup I worked for got acquired. I wanted to return to a role where I would be closer to customers so I could see my work benefit the end user first hand. I reasoned this meant joining a small product team as a developer or a larger team as a product manager. So I told the Google recruiter I may be interested in a product manager role, and may be a developer role if it was a smaller team.
I was flabbergasted when he told me "Frankly, you have no chance of getting those roles at Google in the near future." I have a Masters in C.S. from a top engineering school and classmates / ex-colleagues at Google in those exact roles, so I suppose this guy just wanted to hire me for the role he had been assigned, but what a shitty way of trying to do it!
May be this was an isolated incident. My friends who have worked at Google have uniformly had a good experience actually working there. So I hope Google finds a way to hire or train their recruiters better to avoid incidents like this.
Your master's degree does not have much of an impact, but I know personally of strong performers at Google with 3-4 years of experience who are receiving 135k-150k in base salary + other goodies such as their obscene bonus scheme and stock grants.
if you are a star dev, you can always try your luck on wall street firm, D. E. Shaw., Knight Capital and such.
edit: okay, perhaps I should explain: not because I'm looking for a job (I'm happily employed!) but because it would suggest a desire to actually be proactive about social and ethical issues, which, sadly, so many companies are not (or deliberately avoid).
Of course it does help to understand what's going on in a company to be internally effective, and it might take a while before an external person is accepted (as always), but in order to identify potentially negative social and ethical impact it can really help to have someone who is open minded and not tied to the particular traditions of the group.
For example, in 2000-2005 I had all kinds of ideas for things I wanted to do, but ultimately got discouraged by the fact that, even though I had excellent software development skills and great ideas, I lacked the capital and knowledge to, for example, set up a rack of servers or a bank of fax machines in a closet somewhere. Today, in stark contrast to even 2005, those kinds of hurdles are totally gone. It's very easy to get servers set up in the cloud to do whatever you need.
Also it's far easier to succeed independently than it was a few years ago. In the computer games space, where I make my money, self-publishing is a seriously viable alternative now (I'm living proof!), where a few years ago you mostly needed to work for a game studio to actually make a living.
Google is still a god-like entity that many of us would love to work for, but there's a comparatively new form of competition that's probably hitting Google harder than ever before: the fact that it's 10x more viable to do your own thing today than it was in 2005 or 2007.
In my words, the power of the capital over labor has diminished, as labor increasingly can do without (external) capital. To that the capital responds by upping salaries and instigating the bidding wars over the talent that is still up for sale, at least for now.
Basically...YMMV. I suspect that a lot of any individual candidate's experience will come down to which recruiter and interviewers they happen to draw.