A note to Google recruiters (and on Google hiring practices) (2011)
infotrope.net
infotrope.net
No opinion on the rest of the article; never worked for Google, never interviewed for a job there. But I wanted to respond to this graf.
This seems to be a trope in job interview postmortems: the "technical problem that the candidate responds to with the name of a library because why would you reinvent the wheel". I doubt that this approach will come in handy. The interviewer isn't simply asking how you'd extract entities from an HTML page. They're using entity extraction as a model problem, a stand-in for the kinds of problems they expect you might deal with at that company, most of which won't have library solutions. Answering with the name of a library is about as productive as saying "I'd post on Craigslist to find someone to write the solution for me".
Meanwhile, coming up with a solution for extracting entities from a page isn't that hard; it's a weird place to stick to your guns on needing a library. And Calais is a lot of machinery to involve just to extract entities from a page of text.
I mean, working on a whiteboard with no reference material and no test data I'd be glad if I had time in an interview to write a bug-free DOM parser that would work on a modern, standards-compliant web page - I wouldn't expect to even start on dealing with malformed inputs, javascript, images, nested documents...
Seems to me you're going to have to get a handle on the page to figure out which entities are going to be treated as such and which are e.g. nested inside comments, or within javascript strings, or within inline CSS, or in the head, or after the body close tag, or resemble entities but aren't valid ones, and so on.
It seems like you are addressing a question of total implementation. But in an interview, I would expect a candidate to be able to answer--not fully implement--what some of the basic steps are. As opposed "use a library".
Learning how to think abstractly is one thing, but the ability to "puncture" abstractions is quite another. The latter is more valuable in this context.
True enough.
Depending on the acquisition and the acquiring company, non-technical staff might not even get an interview -- they're just sent on their way with some thank you money, sometimes.
The standard year is the "don't say bad things about us" move done by companies that are sensitive to that kind of negative PR.
But really, finding a place for staff members that you would not have hired involves a lot of energy which can almost certainly be put to better use elsewhere in the business.
It's not easy to make one that is good enough for commercial use unless somebody is hand curating the results. For the record, OpenCalais isn't good enough for commercial use (I've tried), and like most text analysis vendors, the people there blame their customers for the lack of adoption, not their product.
If you look at the leading entity extraction products they tend to be by huge companies like BBN and IBM; the state of the art open source product is UIMA, which out of the box does precisely nothing. What it does do is make it possible to coordinate the work of 100+ developers, linguists, scientists and other people in a bunch of different timezones so you can run a sweat shop that piles up a pyramid of heuristics at a price that can only be afforded by large organizations that expect to pay a lot and get very little for it.
Now the question of how you can cheaply build a knowledge base that can do the same is an interesting one that I've thought about a lot.
You can answer 90% of the questions that show up in a data science interview with "look it up in a hash table" or "look it up the literature". Off the top of my head I'd have a hard time explaining how to make a bloom filter or how to turn text into a suffix tree, although I probably could derive an algorithm to train an HMM. I can look up all this stuff in the literature so why bother?
If somebody hires me to work on that I can produce exceptional results.
If somebody hires me to fill in for the last guy who burned out on a project that is two years behind schedule, my performance is average.
Asking a question like that from an average person will give you an average answer and average, at best, results in real life.
Ignoring all the other potential problems with Google's interview process, and the question of whether he should have been asked this for the position he was interviewing for in the first place (I can't say without knowing more details), saying I would use library X is a terrible answer to a question. The point of the interview is to get to know more about your skills and abilities, and a one sentence answer tells me almost nothing. Of course it is also partially the interviewer's responsibility to ask the right questions, look for the right qualities, and lead the interview in a way where the interviewee can properly demonstrate their skills, but it's also partially or equally the interviewee's responsibility to demonstrate that.
Then when you get into the process after talking to the recruiter for a few minutes it turns into a completely other kind of experience, somehow suddenly you're supposed to feel grateful for this opportunity to interview at Google, and it's time to go through the attrition gauntlet, try not to feel self-entitled like you deserve to work at Google.
Like maybe just be upfront about the expectations, because the disconnect from recruiter first contacts "you are the best please let us talk to you" to "oh shit you want work here? Yeah good luck with that." is really annoying and I stopped the whole process before ever talking to anyone.
And I like technical interviews, because I like the challenge. But not with Google.
-----------------------------------------------------
[She:]
I have scheduled your phone [coding tests] interview for the following:
DATE: .....
TIME: .....
PHONE: .....
-----------------------------------------------------
[Me:]
Hi,
I think I already passed technical interview process with Google a few times in the past and gained quite a bit of an extra experience since then.
As I mentioned I'd be happy to connect with the team in person to see how my experience can be of benefit to Google enterprise, but considering my current situation - going through new rounds of pre-screening coding tests to prove my worth is not something I have interest in.
-----------------------------------------------------
[She:]
I completely understand. As I mentioned this is the first step of the process. If you do decide to reengage in the process I would love to work with you. The prescreen call will take about 45-minutes and focus on your most recent coding experience, and the experience that you've gained since your last interview. This phone call isn't just a skill assessment, it will help further narrow the team that might be a match for you. I know the process can be a bit lengthy, but it's designed to have a low standard deviation and really hone in on your skill-set, and area of expertise.
Let me know if you change your mind.
-----------------------------------------------------
[Me:]
http://i.imgur.com/YKp9cX8.gif
-----------------------------------------------------
Web page won't load for me. Text-only cache: http://webcache.googleusercontent.com/search?q=cache:F4BMUCc...