72 comments

[ 3.8 ms ] story [ 162 ms ] thread

  my software was insanely successful. Why is that? Well 
  the answer is not in the realm of computer science.
  I have always had a user-experience focus to my software.
  Homebrew cares about the user. When things go wrong with 
  Homebrew it tries as hard as it can to tell you why, it 
  searches GitHub for similar issues and points you to them. 
  It cares about *you*.
I love that he calls out Homebrew not being a technical marvel and attributes its success to the fact that it does what users care about.

His skills align better with product management at Google more than software engineering though.

It's clear when software is written or designed by someone who cares about the user. Homebrew really is a great example of this.

I wholeheartedly agree. If there is one thing I'd like Google to change is to think about and care for their users.
Well, that's probably why he wasn't hired.
But ultimately, should Google have hired me? Yes, absolutely yes. I am often a dick, I am often difficult, I often don’t know computer science, but. BUT. I make really good things, maybe they aren't perfect, but people really like them. Surely, surely Google could have used that.

No, Google shouldn't have hired him, and he made it very clear why: he's a dick.

Related discussion:

https://news.ycombinator.com/item?id=15474893

If dickishness was a crime then most of our software engineers would be in jail.
That it's not a crime doesn't excuse dickishness.
You need to find a new place work if that is true.
I quite working at Google largely because I found many more dicks there than average. So maybe Max would be a perfect fit. (Although let's not forget that admitting you are a dick at times takes a certain amount of humility.)
In the aftermath of the Damore affair, one thing that came to light was that Google managers operate private blacklists, which they attempt to spread beyond Google to make people unemployable, and that they are so unafraid of HR that they openly brag about it. It sounds like some pretty toxic behaviours are tolerated there, among management if not among the engineers...
source?
I have not worked at Google and have no idea what the list in question is, who maintains it, or what it takes to get on said blacklist. Speculation admits a lot of possibilities, including your own, but there's no evidence that managers created that list. It could well be line staff producing and publishing their own list of preferences. As a random example, perhaps a list of known sexual harassers that HR has not acted on, curated by an individual contributor with a victim's right's motive, and shared with at-risk coworkers. In such a situation, a person might legitimately wish to not put themselves in another stressful, high anxiety situation involving harassment.

Either option and many more are possible. All the ones I can think of suggest that Google's hiring and transfer process needs work.

People who tweeted about adding names to the list were identified via LinkedIn as managers at Google. I don't want to doxx anyone because maybe they have seen the folly of their ways but there was a whole furore about it at the time.

In the UK employer-maintained blacklists are illegal http://www.bbc.co.uk/news/business-36242312

It’s cheaper to spend 200 hours (or pay 20k more for the role) to get a non-dick than it is to pay 20 coworkers 10K more each to deal with the jerk. (Not to mention backfilling talented folks who don’t want the toxicity)
At least in my experience, the real dicks you want to avoid would never casually call themselves dicks.

I don't know Howell, but that reads more as light self-deprecation than an admission of genuine toxicity.

The biggest dicks are the smooth guys who always say the right things and never take a position.
I wonder why is this downvoted? Sane discussion that benefits everyone rocks.

People who avoid that usually have nothing to tell.

Or worse, who say the right things, never take a position in front of you, and then stab you in the back when you're not around.
in my experience at least some of those who openly/seriously call themselves dicks are low-level sadists that just enjoy being abusive or insensitive and use the "self-aware" commentary as an equivalent to the standard "inb4" forum post (ie "inb4 i'm a dick").
I've worked with many dicks I never want to work with again who proudly call themselves dicks.
I also question why anyone would want to work at a place that... didn't want you.

Google shouldn't have... followed their own guidelines?

To say someone should have, is to say they would regret it.

Google isn't a person. And they most certainly will not regret a thing...

Be careful with binary assessments of whether someone ‘is a dick or is not a dick.’

The linked article draws more differences than similarities as far as I can tell. Max Howell readily admits weakness before pride. He brags outwardly at the end of his message, which was a little distasteful, but it was after he widely incriminated the project he is bragging about. The linked article describes a very different type of person. People are rarely so simple.

There are many depths of info and systems available for concieving/understanding personality types and archetypes. Reply if you’d like some recs.

I'm not assessing anything, just quoting himself.
Well, you did say, in your own words: "No, Google shouldn't have hired him, and he made it very clear why..."

That seems like a pretty clear assessment to me.

To read the responses to Max's post, Quora wants me to sign on with Google. And then, when I sign on with Google, "Quora wants to manage your contacts".

Fuck that, Quora.

I just add ?share=1 (or &share=1 whatever the case may be) to any Quora URL to keep reading
(comment deleted)
Isn't inverting a binary tree just this? (That's what some people seem to think, when I search for the problem.)

  1> (defun invert (tree)
       (if (atom tree)
         tree
         (list (invert (cadr tree)) (invert (car tree)))))
  invert
  2> (invert '(((1 2) (3 4)) ((5 6) (7 8))))
  (((8 7) (6 5)) ((4 3) (2 1)))
Here I modeled the binary tree using two-element lists as the nodes (thus using two cons cells where one would do) for the sake of presentational clarity.

What are the real requirements?

Yes, I think it is just recursively swapping the left and right branches of the tree.
I would have written the same. I have no idea what Google understands by "inverting a binary tree", but to me it looks this. "Recursively swap left with right." Now just convert that to an inferior language, like java or python, so they can understand it.
I mean, I suppose I'd be happier with Racket?

Bonus points for building a #lang for expressing trees and operations on them.

(note: this probably wouldn't actually get you bonus points, and might result in my wildly gesticulating to get your attention to try to drag you back to the actual interview)

If you are faced with a question like this in a Google interview, and you simply state the answer above right away, you are only solving part of the problem.

A Google interviewer expects you to ask questions and clarify any simplifying assumptions you may have made.

For eg: Are you assuming right at the beginning that the entire tree fits in memory? If so, Google interviewers expect you to clarify that at the beginning. They might later ask you to modify your solution for cases where your assumptions don't hold true.

From what I know, the biggest mistake people make during tech interviews with the big 5 is directly jumping to solutions without probing deeper. At the scale at which the big 5 operate, many routinely simple assumptions can be problematic.

If a tree is so big it doesn't fit into memory, what are you trying to achieve by swapping it?

How about just working with the original tree the way it is and just traversing it in reverse order, if necessary.

I would probably ask if this is in-place or do we treat the input tree as immutable.

> I would probably ask if this is in-place or do we treat the input tree as immutable.

…that's what the parent comment is implying. Ask questions and don't assume things.

If you can code a prototype as fast as asking question, why not. Code it up and then ask, "how about this: what requirements are missing from this that require changes or a rewrite?"

Asking too many questions sounds like you're trying to delay coding something up.

Suppose you just ask questions and they pile on more the requirements. Then the combination of requirements makes it so hard that you can't really code anything on a whiteboard. You're hosed.

If you incrementally prototype, at least you arrive at the same point having some iterations of code on the whiteboard.

I'm sorry, this is terrible advice.

Trust me, the interviewer is never gonna pile up requirements on you. In fact, they are trained to ensure that what they ask can be completed in the time allotted (with time to spare for candidate's questions). More often than not, when you ask clarifying questions, you will end up with a much different problem (and sometimes simpler) than what you expected.

> Asking too many questions sounds like you're trying to delay coding something up.

No it doesn't.

> If you can code a prototype as fast as asking question, why not. Code it up and then ask, "how about this: what requirements are missing from this that require changes or a rewrite?"

This is terrible, you are now making the interviewer do your work. You need to tell the interviewer what the boundary conditions of your solution are. That gives valuable data about your understanding of the solution space.

> you are now making the interviewer do your work.

To clarify, by "what requirements are missing" I don't mean "what is wrong with my code" (as in, in what way does it not meet the requirements that were already given; please debug my code for missed requirements). Of course the properties of the solution are clear and remarks are made about that in the course of writing it up and discussing. The "what requirements are missing" question is purely about new/different requirements.

> Asking too many questions sounds like you're trying to delay coding something up.

In my experience, if you write boilerplate you'd need to write anyways while asking these questions interviewers don't hold it against you.

No, this is not what happened at my google interview. Some poor HR guy, without any tech background read questions from his screen, and tried to match my answers with his answers. When I gave a too good answer on something he said "no wrong, next question". Ridiculous interviews. Twice. That's why I can relate to Max Howell.
That's just the HR screen. The actual interviews are not like that.
The real question is why people care so much about working for Google. If you're good, then you'll find success with or without Google, and if you're not good, then why would one complain about Google not hiring them when you don't even believe in your own ability.

It's bizarre, really.

Thank you. Tech’s constant lionizing of the Big Five is noxious. Feels just like high school.

Falsehoods programmers believe: all the best devs work at the Big Five.

hes not good , if he was he would be hired by google ... this is the silver lining here folks.

Big personality , decent coder ... but google level tech guy? Good enough to be among the best (the kind google go for) I guess not? Lets see who picks him up but if he gets some kind of manager position at a startup we can be assured hes more talk then tech.

Hard worker and organized results driven guy maybe, but some people dont really have the skill to be great engineers.

This guy got to the big leagues and realized that outside of the OSX world we care about hard engineering performance and scaling optimizations, not so much the rounded corners and glossy ui.

Google makes alpha-zero, what are they going to do with a guy like Max. Even he admits his application is not feature complete, so hes not even a "finisher".

I think they let him down easy , saying it was not a good culture fit , instead of telling him like it is, hes just not good enough.

Question: Do you think there is not a person at google with a worse personality than Max? I bet there are and I bet they out perform all of us in this thread. If they "should" have hired you , they would have hired you Max. They would have found a place for you.

I don’t think it’s irrational that programmers would want to work for the firm with the recognizable prestige and among the highest industry-leading compensation.

I could get offers at Jane Street or Two Sigma for more money, doing potentially way more interesting things, but my mom isn’t going to brag to her friends about it.

This is notwithstanding that many people would likely recognize the prestige of those companies within tech and finance circles.

Simple - $$$ and prestige, that's why. If you play your cards right, Google is one of very few companies in the area that will make you absolutely ridiculous (for the level) offer in practically all cash, not some faint promise of payout some time in future. Then, once you have Google on your resume, it opens opportunity to at least start a conversation with almost any other company you wish to work for.
> The real question is why people care so much about working for Google

well, one answer is easy: resume material.

This is well written.

The tweet was well written.

And brew, well, yah, well written.

Thanks Max for making the missing package manager for macOS. I use it, I taught my kids to use it and will probably keep using it for the next decade. Thanks!

And Google?

Who cares about google. It is Apple that should have hired Max. Years ago. For making their product better.

Missing? Macports was there before homebrew, is managed properly, and just works.
I disagree that macports “just works.” When homebrew came on the scene, I too thought, “why not macports?” After using homebrew, I realized that it is far easier to fix issues when they appear.
I have two thoughts on this. First, no single job rejection is worth agonizing over. Would someone reach self actualization just by working at Place X? Maybe, maybe not.

Second, I empathize with Max Howell's lack of formal CS education. I studied electrical engineering and a bit of software engineering. I attended a top 10 engineering university in the USA, but learning stuff like the nitty gritty of sorting is not part of the EE curriculum.

TL;DR >I wasn’t very clear what a binary tree was
He just got unlucky. It's always luck of the draw with job interviews. Just like those poker players that say they should have won the hand.

I'd like to try this in an interview: how would you re-root a binary tree such that the ordering of the elements remains the same, but the root node of the tree changes.

+1 imo luck plays larger role than most people would like to admit. Particularly at places like Google who just throw their CS bingo bonanza at you, but at places that interview properly too.
Only the people who interviewed Max and people on the hiring committee know why he was rejected. Maybe he was a bad cultural fit(if he actually is a dick?), maybe he failed horribly at answering some question, who knows?
People who are dicks can hide that in interviews, though. They can hide it much better than not being able to invert a binary tree, in any case.
Maybe some can, but others just wear it on their sleeve out of either lack of self awareness or lack of care. I've interviewed 200+ people in my tenure at amazon and the company I currently work for and its shocking the number of people who can't even be bothered to put on a polite act for 4 hours.
Google used to hire the best and the brightest. While there are still a lot of smart people there, they have diluted that process in favor of other things and the quality of their workforce has slipped. The truth is that outside of search most of the other business units do not bring in nearly as much profit and are not as critical, but they need to look like they have an encore after search or the stock price will tank. Max is one of the many who were passed over so that they can focus on the other politically motivated hiring criteria, vs actual merit. Truth be told they could generate the majority of their current profit (which is primarily from search) with a much smaller workforce. What started out as a scrappy search startup is now a boated corporation.
Google Cloud is experiencing extremely rapid growth and is on its way to significance in Google’s bottom line.

YouTube, though mature, is still important for profit growth within the company.

There is undoubtedly duplication within the company, but I don’t know of a simple solution for it.

Max was passed over because of the engineering interview process at Google, which hasn’t changed for a decade. It is orthogonal to recent developments within the company.

I agree with Max, but I don’t think there’s anything more to read into it other than the fact that Google is extremely risk-averse to making bad hires. Part of this is due to an almost government-employee-level of process related to performance-related firings. An employee could likely be idle for a year before being fired.

So the hiring process is a rational response to a highly irrational retention policy.

>>Google in fact gave me seven interviews and I did well in the software engineering ones,

That is way too many interviews. I don't think I would have lasted that long. After the second one I probably would have found the third one too much of a pain. But if you really want something I guess you do what it takes.

it's 2 phone screens (on separate days) and then 5 onsites in a single day (with 1-hr lunch break in between). But I agree - the full day of coding onsites is heinous and there's definite performance degradation later in the day. source: i've done 100+ interviews @Google
The whole affair seemed stupid for me when I first read about it. The obvious position for this guy at google is "making sure that google open-source products are popular among developers" and he is obviously well-qualified for it. I don't know why he applied specifically for a run-of-the-mill software engineer position, but if google HR were a bit more flexible, they should have asked him "Hey, are you sure? How about this other thing instead?" instead of going through a lot of whiteboarding interviews.
I still don't get why this is still an issue.

Max Howell created something that everyone uses. He's made the world a better place for many (typically technically oriented) people. He's clearly talented and enjoys what he does(to maintain homebrew for that long?). He does not have a degree in Computer Science.

Google as an exclusive(as in there is a barrier to enter) community has all its rights reserved to reject or offer an invitation to anyone. They can set up (seemingly)arbitrary requirements and degree/knowledge in Computer Science seems to trumps all others. So they said no.(I'm just assuming that the reason behind the rejection was the trick question.)

The two statements can both be true without putting a shade on either. Google may have lost on getting a good talent working for them. With this debacle permanently looming on the web(especially since we're talking about it after few years), they have lost the prospective of working with Max Howell. Max Howell, by writing this now and back then, sabotaged the same prospective. Who will have lost in the end? I'd say Google by a small margin, because a good talent with an indisputable track record is sought for.

> He's made the world a better place for many

Most importantly, that doesn't mean he's going to make Google a better place, or that his skills will be usable at Google.

I can't be the only non-OSX/MacOS user in here wondering who the hell Max Howell is, right? I've looked it up since.

Anyway, why does it take this much to say something we all know true? You don't have to be a good software engineer, a good team player, even a good person to be able to have a good idea for a program, execute it and it be popular. Homebrew was clearly key to people being able to develop on OSX.

What I don't understand is why some of you have beatified Max. Making something you like doesn't automatically speak to its or his technical merits. Trading on the name of your products might be able to get you through the door but shouldn't get you through interviews, alone.

He interviewed at somewhere where they demand you're an exceptional software engineer, academically and executionally. He's neither. The result isn't a shock.