6 ms·
This guy: A.) makes stuff, B.) The stuff works and is useful to other people c.) Challenged himself to drill into the "crass" business side to make himself far
by stillsut 9y ago
This guy: A.) makes stuff, B.) The stuff works and is useful to other people c.) Challenged himself to drill into the "crass" business side to make himself far more profitable.
But would anyone here in a cool startup hire him?
- jaymzcampbell 9y agoIf I was still working in a startup (whether it would count as cool or not I'm not sure) I certainly would. People like this are rare - he's proactive and clearly driven. If a cool startup turned their nose up at this sort of person it's their loss (and probably nowhere near as "cool" an environment to work in that they think).
- jcadam 9y agoDepends... how fast can he implement an AVL binary search tree on a whiteboard?
- SaltyBackendGuy 9y agoHa I laughed out loud when I saw this.. But also very true.
- acangiano 9y agoThis literally happened to Max Howell, the guy behind homebrew. "Google: 90% of our engineers use the software you wrote (Homebrew), but you can’t invert a binary tree on a whiteboard so fuck off." https://twitter.com/mxcl/status/608682016205344768?lang=en https://twitter.com/mxcl/status/608682016205344768?lang=en
- always_good 9y agoI can agree with Jonathan Blow's responses in so far that you should be able to invert a binary tree in an interview if that's the sort of knowledge you need on-call on the job and there's somehow no room for rustiness because it's some sort of high stress environment that needs immediate results (btw that doesn't describe jobs at Google). But then he reveals that he's completely full of himself when he suggests that "sorry, you're not a good programmer then."
- opmac 9y agoThe name "Jonathan Blow" and the words "full of himself" pretty much go hand-in-hand.
- tomp 9y agoHaha, I've been a programmer for most of my life and I don't know what "inverting" a binary tree even means!
- guessmyname 9y ago2 2 / \ / \ / \ / \ / \ / \ 1 3 3 1 / \ / \ / \ / \ 0 7 9 1 reverse >>> 1 9 7 0 / / \ / \ / \ / \ \ 2 1 0 8 8 8 8 0 1 2 / \ 7 7
- hinkley 9y agoThat’s reversing a binary tree.
- guessmyname 9y agoInverting == Reversing [1] [1] https://leetcode.com/problems/invert-binary-tree/description/ https://leetcode.com/problems/invert-binary-tree/description...
- nathan_f77 9y agoThat was fun, thanks! I remember reading that tweet a while ago, and "inverting a binary tree" sounded very complicated, but it's really just one line of code.
- hinkley 9y ago
- znfii 9y agoWas it ever figured out what "invert a binary tree" means? At least I had never heard this term used prior to this incident. This has me slightly worried about this particular example somehow, and I'm not quite sure what to make of it...
- gizmo 9y agoIt means to swap the left and right arm of each node. So you effectively "mirror" the tree.
- ezekg 9y agoYeah, it's relatively simple once you come to that realization: TreeNode* invertTree(TreeNode* root) { if (root == NULL) { return NULL; } TreeNode* tmp = invertTree(root->left); root->left = invertTree(root->right); root->right = tmp; return root; } It sounds a lot more complicated than it is.
- vkou 9y agoUntil I throw this test case at you: TreeNode testRoot = new TreeNode(); testRoot.left = testRoot; invertTree(root); // Stack overflow. But that's not a tree, that's a cyclic graph, you may shout. That's true, but you still need to sanity-check your inputs.
- archagon 9y agoThat ought to be done in a separate validation step, and/or the tree object should enforce its invariants. (I shouldn’t be arguing interview problems on HN, but I’ve had a few beers.)
- vkou 9y agoI argue that if an interview question asks you to implement parseInt(String foo), it's your responsibility to handle inputs that aren't a properly formatted integer gracefully. Or at least to point out to the interviewer that your solution fails to handle unexpected input, and ask if they want you to add input validation logic, or if they are satisfied with the answer.
- jliptzin 9y agoSomething similarly hilarious happened to me. I sold an app I built to a company in the 6 figures. I was the sole developer on the app. The sale had already gone through and they (obviously) needed someone to help maintain the app. Rather than just offer me a job, they insisted I go in for a technical interview with their engineering manager -- after buying the app I had built 100% myself. That and a few other clues scared me away and I ended up working for a competitor which went on to become much much more successful.
- guessmyname 9y agoIt was clear from the very beginning that the decision was more on the "culture fit" side than the knowledge. His attitude shows this and then is confirmed after he quit Apple (who hired him no long after Google's rejection) and he — himself — stated in a message via Twitter that Apple's work environment was not for him. Reversing a binary tree is not that difficult, and a good interviewer (specially the ones at Google) already know this, but if the interviewee shows an angry face out of frustration and doesn't ask for help or doesn't communicates his inability to proceed with such task, then what does the interviewer says? Rejection! Interviewers also evaluate your communication skills.
- dozzie 9y agoAh yes, people do bring this case up. However, they don't usually remember that Homebrew at that point was a poor and incomplete reimplementation of other package managers, used to break installed software on updates, and the fact that the very team that was maintaining Homebrew was not competent enough to either manage SSL certificate for their website properly or at least admit that it was a bug. The sole fact that people use your software doesn't mean that you're competent, similarly to your inability to work with data structures on a whiteboard not meaning that you're incompetent. Somehow people only remember about the latter part for Homebrew.
- josefresco 9y ago"The sole fact that people use your software doesn't mean that you're competent" It means something else, which may actually be more valuable than being a "competent software engineer" in the eyes of a specific company.
- vkou 9y agoMillions of people have used bad or buggy products for decades, but that doesn't mean that you want to hire the engineers who built them, no more then you want to hire lottery winners (For being lucky!).
- josefresco 9y agoAuthors of widely successful but "buggy" software are now lottery winners? My point was that these "unqualified" engineers clearly have something that separates themselves from even "genius" engineers. Hustle (to name one trait) matters, sometimes more than qualification and academic credentials.
- vkou 9y agoNo, but if being an author of successful software makes you a good employee (Because surely, that success is wholly transitive), then being a lottery winner would too. (After all, you were lucky - and it's good to hire lucky people.) Put another way - does being a security engineer for Equifax make you an obvious hire at Google? I mean, every American Google employee has used Equifax's credit report systems, or used a bank that uses Equifax's credit report systems - clearly, said security engineer knows what he's doing.
- Posibyte 9y agoIt's not about knowing how to do it, it's about watching the thought process of how you go about getting to the solution and how you communicate ideas and problems. It's really great that he made a widely used piece of software, and he's a prolific developer for it. But if he can't explain the process to how he gets to an answer, it's hard to know how he'll work with other developers on problems.
- strictnein 9y agoThat sucks. Also, I didn't realize Jonathan Blow was such an ass.
- innocentoldguy 9y agoIt's horse shit questions like that in tech interviews that caused me to start my own company and leave corporate America. A whiteboard is just a glorified chalkboard, and I got sick of being asked to prove I understood how to use and manipulate one of the most complex systems ever invented by man by basically rubbing a soft rock against a hard rock. I figured if a company couldn't do a better job of interviewing me than to ask ridiculous puzzle/whiteboard questions that have nothing to do with their business, then I probably didn't want to work there anyway. Throughout my career, I have valued companies who can ascertain my skills by looking at where I've worked, code I've worked on, and the conversation we've had. Those companies seem equally adroit at determining the market and making good business decisions. Nearly every place I've worked who employs puzzle questions has either failed to maintain their market position or gone out of business. Sure, there are exceptions, but not many. In my opinion, puzzle questions show a lack of knowledge and insight, and before starting my own company, I made it a habit to walk out of any interview that employed them.
- vthallam 9y agoAnd in 30 mins. The current recruiting framework has really become a meme. But all the companies are so deep into this, it's really hard to come out of the current data structure testing methodology.
- SomeStupidPoint 9y agoWhat's weird is they don't even test knowledge of the theory or operation of data structures, just if you can puke a few classic ones on a whiteboard. Honestly, I think they've optimized on simply hosting an ordeal and selecting for any employee capable of performing the feats, even if they're unrelated to the job. It selects for employees willing to put in work and take a lot of shit, which is what big corps want.
- ChuckMcM 9y agoI suspect if he continues in 'Adtech' he will find opportunities.
- mamoswined 9y agoYeah I always rec Adtech to people who have trouble getting jobs elsewhere. Adtech doesn't care about whiteboarding, if they don't like what you're doing they'll just fire you. I swear I never saw more abrupt firings than I did in my year at Adtech. Often the pay isn't great though.
- sdfjkl 9y agoI'd hire him in a heartbeat, because he's determined, analytical and can figure shit out himself. But then he'd not be for hire, because he already figured out how to put those skills to use himself to make money, so he's too smart to fall for the "come work for our cool startup, we have free Nutella" bullshit. Even better, he figured out it matters what you work on :-)
- fpgaminer 9y agoWhy not? He's a good, self starting worker. I'd love to have him on a team. Is the insinuation that, because someone worked in a dimly viewed industry, they won't be a good match for a more "upstanding" startup? Let's be honest here. Most startups aren't saints either. They exist to make money and nothing else. Unless you incorporate as a California B-Corp, you are legally obligated to make money for your shareholders at the cost of everything else. Or is the insinuation that, because someone worked a "dirty" job they might turn out to be a corrupt employee (doing "bad things" like stealing company money, manipulating co-workers for personal gain, etc)? No, I don't believe there is any correlation between someone willing to work a dirty job and someone being a shitty person.