... now all it needs is a light side and a dark side.
Sometimes common sense is just wrong, particularly when it comes to predicting the behavior of other people who might not agree with what you consider "common sense". If you check his publications in Google Scholar, this guy's been publishing surgical neuroscience papers in real journals since around 1990. I think he really intends to try this.
From my experience, the "... requirements for good [company name here] interview questions
Not at Google. Engineers talk to each other a lot about what they ask in interviews, because one of the rules is that you must "calibrate" your questions, and the very best way to do that is by trying out your questions on your colleagues.
The goal, of course, is to select hires who are at least as good as you and you colleagues.
There's an outside chance of Java, either as an Android App developer, or for some server back end crap at a company they purchased.
Actually there's an extremely good chance of Java. Google mostly runs on Java... infrastructure stuff like GFEs, borg, etc. is all C++, and search is C++, but nearly everything running on borg is Java.
This AC nails it. I'm also a Google SWE. And I have gotten yelled at (figuratively) for not disconnecting
While experiences may differ, for me Google has offered all of these things (except for the large stake in success/failure of the company, but that's just because it's a big company). There are ample opportunities to transfer to other teams if I don't like what I'm working on, and my input is generally welcomed when it comes to what I should work on. I've also pushed back to my superiors when I thought they were wrong, and when I was able to back up my statements with data (which has always been the case when I really believed I'm right and they're wrong), they backed down, with generally amiable interactions maintained throughout.
The only pressure I've experienced from Google with respect to my life outside of Google is to make sure I am able to disconnect from work. Some people have a difficult time disconnecting, but that's usually because they enjoy the work they're doing. For the most part it's a personal choice, and Google gives employees resources to help them to disconnect so that they can maintain a good work/life balance.
With respect to location, yes most of Google's employees work out of the Mountain View office, and the cost of living there is a serious problem. But there are a number of other offices around the world, many of them with more than a thousand engineers.
I don't know where you get your information from, but I don't think your experiences come close to the experiences of most employees at Google today. I generally think that Google is a wonderful place to work, with wonderful people, an inclusive culture, and great benefits. I don't know how well it compares to other companies, but I don't doubt that Google deserves its "best place to work" awards.
They run contests, which are essentially easter egg hunts that result in a potential interview
No, they don't. Google did try that once, with math problems on billboards. Lazlo Bock says those billboards resulted in zero hires.
(I'm a Google engineer.)
I'd rather take my time asking you your knowledge of key libraries and interfaces
What use is that? That is asking for rote memorization.
If you really wanted to test someone's rote memorization of the Big O notation values of various algorithms
Why would you want to test that? That's pointless. At the very least if you ask about complexity of common algorithms, you should also ask them to explain how they determined it, or could determine it. Even better, ask them to create an algorithm to solve a problem, then ask them about the complexity of that. Then they have to actually work out the complexity, demonstrating that they understand asymptotic complexity as a concept, rather than just regurgitating. Then take it one step further and see if they understand the difference between asymptotic and real-world complexity, and why the ideal algorithm for massive data sets may not be at all appropriate for small ones.
My goal in an interview is to make the candidate think, and to watch how they do it. How do they explore the solution space? Do they tend to get stuck on one unproductive line of inquiry, or can they step back and try another angle? Can they see ways to reformulate the problem to simplify it? Generalize it? Specialize it? Do they understand the tradeoffs of various design decisions? How effectively do they collaborate with me on the solution? Good engineers know when to ask for help.
Oh, and... can they write code? Because it's amazing how many people walk in fully able to talk the talk but when asked to produce some functional, reasonably-clean code fall flat on their faces.
Those are useful things to ask about. Memories of libraries and interfaces? Useless. Actually, probably counterproductive unless what you really want is someone who is deeply specialized, then you can ask about the relevant components in that specialty. But in the common case it's far more important to find out if they can reason, problem-solve, code and interact with you. They can google the specifics.
its stupid to demand or even ask a programmer to recall, from memory
Yes, this is why one of the requirements for good Google interview questions is that they not rely on specific knowledge. They tend to ask you to invent and implement a new algorithm, not remember an old one. Where interviewers do ask questions that require specific knowledge, they're happy to provide whatever you don't remember.
You end up with an interview process that, regardless of the actual work, the further away from school you are (ie: the older you are), the less likely you are to pass the interview, give or take people who worked as data or algorithm scientists in the recent past.
Nice theory, but as I understand it, higher percentages of candidates with professional experience are hired than of candidates fresh out of school. I'm 45 and was hired by Google four years ago. Most of my team was in the 40s, with several in their 50s and a few in their 60s.
There is an issue that older guys who haven't reviewed their algorithms, data structures, complexity, etc. recently may be a little rusty. Most of the time this doesn't actually create any issues, and it's pretty easy for older guys to address simply by brushing up before the interview. I did.
I see a company with cafeterias open late, games, etc, and I see a company that wants me to spend every waking hour at work.
Actually, Google doesn't. The cafes are open late because people work all sorts of odd schedules. Some don't come in until noon and leave late, some show up early and take off at 3. In the Mountain View office there's a lot of both of those patterns, mainly because traffic sucks so bad that people try to schedule around it.
As for the games and stuff, that's just recognition that taking a break is good for think time. Massage services, espresso bars, etc., are all parts of that.
I've been a Google software engineer for four years and there has never been the slightest pressure on me to work long hours. Not only has no one ever asked me to, no one has hinted, implied or anything else, and on a few occasions when I chose to work late my old manager noticed and told me to go home. I'm not saying every manager is that way, in fact I don't think my current manager would ever say anything to me about my work schedule, whether I worked around the clock or hardly at all. Eventually my lack of productivity would provoke a response, though it would probably take a quarter or so.
Now, there are people who work a lot of hours at Google. Mostly young people who don't have anything better to do and are really excited about what they're building. And mostly no one tells them not to. But there are plenty of others who work normal hours, and no one says anything to them, either.
BTW, I'm 45.
Is this way of releasing them better or worse? I don't think we know that.
Let me guess, you're also a "climate skeptic"?
Not at all. Why do you ask?
It's not drilling, it's pumping very high pressure water into the cracks in the earth to release the gas. That's what fracking is, it is using water pressure to "crack" open the rock to release the natural gas.
So you're suggesting that the pumps are adding enough energy to move millions of tons of earth and rock? Really?
That's nonsense. All they're doing is breaking loose enormous energies that were already there.
We are talking about areas that until recently have been considered geologically stable
The fact that we were recently wrong about the stability of the area isn't really relevant. The drilling couldn't add enormous amounts of energy to the substrata, in the form of stresses that required shifting enormous amounts of rock to release, so you have to assume that the stresses were already present. When or how would they have been released without the drilling is an important question, but they would have been released eventually. Is this way of releasing them better or worse? I don't think we know that.
Don't you think that the USGS have taken that into account?
I don't see anyone claiming that they didn't. What would you expect?