skysight-inc/HackerNews huggingface dataset:
Actually, I think this is exactly what we need: higher-profile people willing to speak out publicly about the broken interview process.
Yours sounds like an approach that measures how well someone codes in a vacuum, instead of how they operate on a team. It very much skews the results...

Not to mention for a qualified professional candidate, it feels an awful lot like you're asking them to work for free.
I do, love it. But according to many on this thread (and others), RIM "failed" and were "crushed" etc., so I guess I didn't get the memo...
The Try-Hard Generation
maybe Homebrew is amazing, but Google can hire the best people in the world. that day they might've interviewed 10 people better than him who just didn't make a popular tool
Very good point. It's like, why do you want to work for Google if you aren't into algorithms?
Why? He's under no obligation to Google. It's not like they hired him and he has to sign an NDA or be polite. He had a frustrating interview process and vented about it online, it's a pretty human thing to do. Why would that make him a bad employee?
Perhaps unsurprisingly, I'm very fond of the Haskell mongoDB package. Here's an example:

import Database.MongoDB
import Control.Monad.Trans (liftIO)

main = do
pipe <- connect (host "127.0.0.1")
e <- access pipe master "baseball" run
close pipe
print e

run = do
clearTeams
insertTeams
allTeams >>= printDocs "All Teams"
nationalLeagueTeams >>= printDocs "National League Teams"
newYorkTeams >>= printDocs "New York Teams"

clearTeams = delete (select [] "team")

insertTeams = insertMany "team" [
["name" =: "Yankees", "home" =: ["city" =: "New York", "state" =: "NY"], "league" =: "American"],
["name" =: "Mets", "home" =: ["city" =: "New York", "state" =: "NY"], "league" =: "National"],
["name" =: "Phillies", "home" =: ["city" =: "Philadelphia", "state" =: "PA"], "league" =: "National"],
["name" =: "Red Sox", "home" =: ["city" =: "Boston", "state" =: "MA"], "league" =: "American"] ]

allTeams = rest =<< find (select [] "team") {sort = ["home.city" =: 1]}

nationalLeagueTeams = rest =<< find (select ["league" =: "National"] "team")

newYorkTeams = rest =<< find (select ["home.state" =: "NY"] "team") {project = ["name" =: 1, "league" =: 1]}

printDocs title docs = liftIO $ putStrLn title >> mapM_ (print . exclude ["_id"]) docs
I think that this percentage does not matter as Apple controls 100% of the entry into market of iOS applications.

In case of Microsoft IE, every other company was able to provide software for Windows without MS vetoing it. This situation is different - Apple is 100% controlling the entry into market for other entities.
You may have meant s/tenant/tenet. I'm only pointing it out because the typo is an extant word that may be interpreted to mean something proximate (but not identical) to what I think you actually meant.
I would love a hybrid between a drawing board, a Surface table, and... something else. I mean, not for programing but more for another, art-oriented, tasks.
What key bits do you think are missing from Kubernetes?

I'm sorry you seem to have had a bad experience with GCE, but please know that Kubernetes runs on several other clouds, too, with no crippleware or anything. It is 100% open.
It seems that almost everyone here knows better than Google how to hire employees for Google. Given that you can see why it is trivial to see through hours-long hiring committee decisions in just two seconds.

Edit: as pointed out by others, the hiring decision probably does not take a few hours, but under an hour. Still, the point is valid.
That may well be, but if you're considering hiring a guy who's an expert at writing package management tools, don't you put him on one of the specific subteams that needs that skillset? Surely it's something Google deals with?
You could still interview an experienced person. On the technical side, you could see if they're familiar with your specific stack, and know how to handle version control etc. Aside from all that, you can make sure they share the team's goals, are willing to use version control the way the rest of the team does, stuff that's not about skill.
A Personal Computer (which started with the Apple I/II and after that to work, with IBM) is different from a Mainframe
I suspect you might be viewing the ideas of macros and meta-programming at slightly the wrong abstraction level. Macros are not merely about making code more legible or terse -- I would indeed agree that is a pure anti-pattern. Depending on the nature of your project and team, creating a series of DSL macros is almost certainly more work than it's worth.

However, there is one usage of macros I will never give up, and which has turned me off from any languages which cannot do meta-programming: macros as pattern definition. The "canonical" example of this would be resource management. Languages like C# or Java have the try ... finally syntax, and while this is great to ensure you don't accidentally leave file handles open, it only takes forgetting once to have resource issues. Macros provide the easiest to implement answer: just write a little "with-file" macro wrapper for the proper calls, and you don't need to think about the problem of open file handles again.

In fact, these sort of "mini-macros" are best for addressing the problems of concern separation, legibility, maintainability, and refactoring: the "with-file" macro is a prime example of separating the concern of managing file handles from the code which uses the file. You either won't want to refactor the way files are handled, or you'll want to do it everywhere at once -- a well-defined macro eases this effort. Finally, the questions of legibility and maintenance are best "shunted" to properly documenting the macro as you would any other function in your project (e.g. use of ruby-doc or other IDE annotation features).
This guy can clearly ship software. The questions should have been what do you want to work on and why do that with google instead of yourself?
Last week I walked away from a Google offer that included a 70% raise. A large portion of this was a rather dehumanizing interview process, along with the realization that the process doesn't select for people I want to work with, and weeds out most people who I do. I managed to do just enough in my interviews to squeak through, but in doing so realized that it wasn't for me.

Walking through the cafeteria made me feel like I was back in CMU CS again, in a bad way.
They all just seem to be varying levels of fanciness over relatively common data structures and algorithms. I was only applying for internships but the whiteboard stuff wasn't too bad when I did (and other questions I practiced online), I imagine almost completely because we'd done 2 related modules at university.

You spot patterns but there's so many different ways they can ask things and things that you just remember from studying it, that I imagine I'd do worse now unless it was close to what I've done since. On the spot I couldn't invert a BST right now.

I suspect you could probably pass a whiteboard interview a few weeks after taking a mooc on data structures/algorithms with enough depth for example.
> Google is really interested in hiring the best engineers but rather a specific type of engineer.

I think you made an excellent point. It seems that outside a tiny minority of world-class experts, Google is more interested in hiring interchangeable workers.
At my job, our interview guidelines explicitly say that we don't expect non-graduates to be able to whip out fancy data structures. We want to see that the person can program, how he thinks about problems and system design, and how they deal with being stuck. I've seen people with impressive CVs and PhDs that were unable to solve very simple programming tasks.
Has no one stopped to question what Google may have been looking for in a candidate?

The OP has written some great apps, sure, but there is a huge difference between writing a package manager for Mac (among other Mac/iOS apps and utilities) and writing incredibly complex, highly performant algorithms for say search indexing, machine learning, ai, etc...

In that context, knowing CompSci basics like Binary Trees (usually taught to pre-major CompSci students) has a lot of relevance. It's clear Google was looking for a Computer Scientist here, not just another developer.

I am also put off by the extreme display of non-professionalism here. It's like the OP took this personally as an insult. "I've written popular things, how dare you not hire me if I want to work for you!". That's not a professional I'd like to work on a team with. Rather, that's a throw-back to the "Rockstar" programmer that nobody wants to work with.

This boils down to a person who was personally offended a company did not hire them at a drop of a hat, as-if he was "blessing" Google with his presence.

I'd say, Google (and other companies) are better off without this type of ego.

They made the proper choice to weed this individual out.
While it is true that Borg is 10 years ahead of Kubernetes, we have the benefit of knowing where Borg arrived rather than following the same winding course.
I don't know if anyone will see this comment, but for the record Michael wrote a really fantastic book here.
I found actually using a whiteboard, or pen & paper, is the best.

No computers. Pen only.

For me, rehearsing an answer works out. Then, I try to see how to deconstruct it and apply it to a similar problem I don't know.

I can deliver an answer sounding confident and competent because I practiced an answer. It's a bit of a crap shoot.

What irks me the most is that people are doing the interviews. They can be fooled and persuaded with tones and intonations without them realizing it.
For parsing html, you wouldn't need that large a stack. Further, you could make the stack grow dynamically at a very small cost. Also, I bet that even if stackless coroutines are close to FSMs, they are much easier to program.
I typically avoid posting in these sorts of threads, very little good has come from political debates on the internet that I've seen, but your last sentence pushes me to speak up.

Status-quo social thoughtcrime is rather terrifying to me. There's no "easy" way to amend laws or lobby a system to address the issue, as one would against a governmental stance.

It's also cyclical, as less "clean" people speak out against it, the "only rapists defend rapist" situation mentioned by sister posts occurs, and the entire culture of defending someone who might be distasteful, separating the issue from their broader history, diminishes.

I can't claim to judge you for your decision, I fully acknowledge the unfortunate state of things and your ability to make a choice that best serves your needs, but for the sake of putting my money where my mouth is; I think he should have been allowed to speak (espousing viewpoints I disagree with is far and beyond an offensive enough act to cause me to want to petition against someone, and even then, I would not attempt to convey that aversion as anything more than my personal stance).

The fact that I (or you, or any of us) feel any uncertainty due to fear of the repercussions for merely voicing this opinion only serves to reinforce my conviction that it needs to be voiced.
Borg: http://research.google.com/pubs/pub43438.html
Omega: http://research.google.com/pubs/pub41684.html
I mean, I feel like I'm conveying my exact preferences pretty clearly ("let Yarvin speak"), the question is more how much I want to antagonize the people who got him uninvited.
I think there is some validity to the general point, but I'm not commenting on that.

Just quibbling: I don't think anywhere near 90% of engineers use homebrew? Google development is done on Linux, and Homebrew is a Mac thing AFAIK. I have never used Homebrew.

Android development can be done on Macs but I doubt they use Homebrew. Certainly not for anything important.
Useful tool, and truly hackish for Java developers..
> It's funny how when we're young we'll look at a job like that with a sort of scorn as if we've got better things to do, but then as you get older you long a little for those nice summer days of cruising up and down the fairways, just you and your machine.

The problem with a job like this is the lack of variety. Cruising up and down the same fairways for the seventeenth year can really get to you.
Isn't this exactly what EPOLLET (edge triggering) does?
Why has R, despite quirks, been so successful?
A project manager at Google was upset that my 'bot literally ran circles around theirs (it was 2010, Android based robots were just starting) and told me that I was just a hobbyist and my project did not exist.

So I gave him one of the spare logic boards (open design anyway). And wrapped my hand around his. And squeezed. And asked him, if it doesn't exist, why is it making you bleed?

He watched impotently as the people who had been invited for the presentation played with my robots and ignored his as two of his guys tried to get it to work.

I finished the two projects I was doing with Google and did not call them again.

(Before you downvote: Yes, there is some video, and I consider the small amount of pain I inflicted that day a kindness compared to the much greater amount of pain that an engineer is in danger of enduring if he says things like "This thing that is in front of me, it does not exist", especially if he works with big machines).
Do you really believe in this what you wrote here??? Are people completely lost their dignity?

It used to be that the owner of the operating system did not have any say about what other developers can write to that platform.
Taking the K's off your APK (part 1)
Think of the problem from Google's perspective though. At some point, you have tens of thousands of candidates and you need a system to quantify how good they are. Further, it's reasonable to have false negatives (people you don't hire that should have been hired) but really bad to have false positives (people that you hire that you should not have). Together, these boil down into the de facto whiteboarding interview process.
People have previously mentioned hallway discussions at Google routinely devolve into bragging about SAT scores and GPAs.

Nothing says Google must accept sub-par technical people, but Google fails to realize you don't have to be the top 0.0001% in absolute algorithms intelligence to do great work.

Google's basic theme seems to be "you must be low latency ultra smart in our narrow interest areas" to pass an interview (or well-connected in other ways to lower scrutiny), but Google's main problem these days isn't lack of smart people — it's lack of projects with meaning and lack of how to organize smart people into anything resembling a coherent world-moving force.

In The Plex is great read for insight into their entire process. Basically, Google is run by people who have never been told "no" to anything in their lives, so they continue to think they are the best at everything until reality forces them to reconsider their delusional assumptions ("montessori naivety").
So my 1920's piano would then be illegal to sell, just because it has ivory on the keys?
There are others, mostly cats riding stuff that flies.

http://gatherer.wizards.com/Pages/Search/Default.aspx?action...
Yes, there is a point to my tone and negativity.

It does not bother you how they have no care for anyone including their customers?

It would bother the hell out of you after Uber allowed your bank account to be robbed 1,000 dollars! Again, it's been going on for months and they have not offered any change to their service to show they give a rats ass about their customers. All the while blaming it on their users and all the while not allowing their users to easily delete their own accounts and or payment method ..that can only be done by emailing and begging support.

My tone is just and prompted by their lack of care for anyone but themselves and the actions Sarah Lacy speaks of feel very similar to how Uber took me for a ride I didn't ask for (never used the service .. signed up once)!
The Closure Library definitely has its bright spots, and it was my library of choice for many years. For all its warts, I particularly like the design of goog.ui. goog.editor is a wonderful part of the library too. I still run ##closure-tools on Freenode[1] but nowadays we might get a question or two a month, at most, which is definitely a sign of the times ... there was brief uptick in activity when ClojureScript first became popular.

When developing software for evergreen browsers, or not needing to target old IE in general, the cross-browser reliability and performance the library provides is less important. I was lucky to get to pick a prominent Closure Library developer's brain about this last year, and he expressed a similar opinion. I agree with the author of this post in that ClojureScript has breathed new life into the Closure Tools, and gave a presentation last year that touched on this with some code examples showing the brevity CLJS allows[2], but it seems that Closure Library's ship has mostly sailed.

[1] http://oinksoft.com/closure-tools/irc/

[2] http://oinksoft.com/closure-tools/sgdg-jul14/
> Go is a pleasure to work in. Java, less.

Sometimes I wish I'd stopped at Go instead of then exploring Racket, Ocaml, Clojure, Haskell, and Scala so I could continue to hold your opinion.

The end result still matters the most to me, but being so aware of how languages are getting in my way and making me do busywork is exhausting.
Sure would've been nice to have a package management expert working on Go.
I never claimed it was a wikipedia entry. Just that if you were interested in what the views expressed by neoreactionaries were, here's one source I read about it.
Designing DSLs is cheap and easy if you have a proper metaprogramming. It is as simple as picking up a number of language features from your toolbox and mixing them together in a simple, declarative way.

Maintaining DSLs is also much, much easier than maintaining essentially the same thing, but mutilated and spread in thousands lines of application code, mixed with a number of lower and higher levels of abstraction.

> now it's a tool I only reach for if there's a clear need for it.

There is almost always a need for a DSL. Pretty much any problem is better solved with a DSL, as long as it's something more complex than a "Hello, world".
I think it makes a lot of sense. I can download the Windows version of an app and double click on it and it runs. As opposed to I double click on it and it's all "oh you don't have a JRE" or "you have the wrong JRE, mysterious error" or "you need to install this JRE", or it installs a JRE for me, but another app requires a different JRE.
I am guessing these diagrams are taken from Electrical Engineering and not Quantum Physics.

The blog looks like an expansion of their paper http://arxiv.org/abs/1403.7048v3

Yes! That's where I have seen these diagrams before. They are Hopf algebras, which appear both in Electrical Engineering and Theoretical Physics.
Thanks! I really think we should play around with this balance of early value vs pressure to sign up.
BYOD has always been a huge thing but until the iPhone it was hard to justify because many phones simply contained your personal phone numbers and MAYBE email with no good way to keep company stuff separate (Windows Mobile was really the only one that did this...kinda).

When the iPhone came out it showed how more personal a phone could be; of course everyone is going to want to keep their personal assistant with them all the time!

Many seem to think RIM competing in the consumer market was a bad choice but I argue that no matter what direction BlackBerry went after the iPhone's release they had no choice but to compete in the consumer market. Nowadays there are plenty of holdouts but it's getting difficult to find a place where you can't use your personal phone and have your work stuff on it but separated.
You should start actively looking for another job. If you can't find one, can you try to transfer in another team? What is your personal situation? Can relocate if your area doesn't have jobs?
@bbuchalter Thanks for registering and downloading. We like it when our users register because we have to report usage metrics back to our NSF sponsors. Are you able to load the catalog (the .xml not .html suffix for the catalog URI) in the IDV dashboard, Data Choosers tab, and see the NCML files available at that resource?
Smart people will learn what they need to to do a job if they're interested in it.

Google has decided that the only way to tell if someone is smart is by asking academic questions.

Even though anyone with half a brain knows that there are other ways to gauge how smart a person is... such as experience.

Does anyone really think Max can't look up how to invert a binary tree if he needs to do that? He obviously knows how to read and learn. So why is that a reason to reject someone?

Google is filled with smart people.. but their interview process is pretty stupid.
A Location-Based Audience Platform
Some examples of botched executions (1982 – 2014)
disclaimer: i am a founder of the Kubernetes project and did the article with Cade at Wired. i also was product lead for compute engine back in the day fwiw :).

I am not sure which projects you have looked at from Google in terms of Open Source, but in the case of Kubernetes we have worked pretty hard to engage a community outside of Google and work with the community to make sure that Kubernetes is solid. One of the things that I like about the it is that many of the top contributors don't work at Google. People like Red Hat have worked very closely with us to make sure that (1) Kubernetes works well on traditional infrastructure (2) that it is a comprehensive system that meets enterprise needs, (3) that the usability is solid. People like Mirantis are working to integrate Kubernetes into the OpenStack ecosystem. The project started as a Google thing, but is bigger than a single company now.

Another thing worth noting: building a hosted commercial product (Google Container Engine) in the open by relying exclusively on the Kubernetes code base has helped us ensure that what we have built is explicitly not locked into Google's infrastructure, that the experience is good (since our community has built much of the experience), and that the product solves a genuinely broad set of problems.

Also consider that many of our early production users don't run on Google. Many do, but many also run on AWS or on private clouds.

-- craig
> To be fair, you can say this about pretty much anything. But unlike microbeads, which are intended to be flushed, nobody is suggesting that it would be a good idea to release them into the environment.

Very true. I'm surrounded by stainless steel but I don't get chromium poisoning. I'm just worried about side effects, about extra CWNT getting out into the open, like how prescription drugs are appearing in the environment.
I'm a fan of MacDown
The neoreactionaries aren't interested in the Enlightenment as a set of fundamental ideas, but as a time in history they find congenial: after the scientific revolution, before democratic, industrial capitalism steamrolled the aristocracy.

They are like an alternative version of the Society for Creative Anachronism, re-imagining the Enlightenment historical period in ways that leave out the things they find icky but that are in fact inevitable consequences of the times. For SCA that's reimagining the High Middle Ages without the plague. For neoreactionaries it's reimagining the Enlightenment without the end of slavery, or the rise of individualism and democracy.

For those of us who pursue Enlightenment ideals rather than Enlightenment historical accidents, they are an unfortunate bunch. SCA members would feel the same way about anyone who was serious about bringing back feudalism, or reducing society to "warriors, priests and peasants."
Same here. Tribes 1 was one the best games I've played, to date. It was extremely fast paced, had an amazing team dynamic, and the character movement (skiing and flying) was beautiful. I haven't found anything comparable since.