Live data from Hacker News

Hiring Is Broken – My interview experience in the tech industry

medium.com

631–640 of 693 posts

Re: Hiring Is Broken – My interview experience in the tech industry

#631
post #602

Earlier quoted context omitted.

The pseudo-code of BFS is all of 20 lines, and that's accounting for a graph possibly containing cycles. A graph without cycles (such as a tree) would be even simpler/shorter. https://en.wikipedia.org/wiki/Breadth-first_search Correct arg parsing is actually significantly more complicated in comparison because of all the possibilities and edge cases. > Never (!) homebrew that shit unless you have to (like, you're in…

> I can't help but think this mentality is what lead to the recent left-pad debacle It borders on category error to compare homebrewing argument parsing with an overreliance on microframeworks extending all the way down to leftpad. Argument parsing is almost always supported directly by the language implementers in a standard library. And even if it wasn't, it's such a critical task with huge overhead for handling co…

What the hell sort of library would you crack out to do a breadth first search traversal? This is my main problem with the OP, BFS isn't some arcane complex cryptic algorithm, it's a way of moving through a data structure that becomes natural and very obvious when you think about how you can effectively traverse it for some tasks.

If I were ever to want to traverse something in a breadth first search manner, then I would just write it. It would take longer to search for another library and read how it's somehow implemented this search than it would to write it, test it, get it reviewed, and we've still avoided adding another potentially crappy dependency to our project.

It's not category error to compare this to leftpad. leftpad actually makes more sense imo, as it's a common microfunction that may be used more than once. BFS is typically far more coupled with the underlying data and is more naturally written inline.

Re: Hiring Is Broken – My interview experience in the tech industry

#632
post #499

Earlier quoted context omitted.

You don't need to know BFS, you need to show that you can come up with a BFS implementation if you need to do so. You can always say "wait, remind me again, which one was BFS?" and the interviewer can certainly tell you at least what the conditions are. Maybe he might think a bit less of you (although I personally wouldn't) because BFS is a really really common name in the jargon of a programmer, but still it's bette…

Yeah, I think presenting the actual problem rather than a jargon test is a better way of determining a programmer's competency, but even then I'd prefer to ask questions specific to the problem domain, like if you're a streaming company ask about compression algorithms. My favorite questions are when companies ask actual problems they're having and try to get the interviewee to suggest solutions and/or implementation…

How can anybody have knowledge about compression algorithms without knowing what BFS is? This is like claiming to be a mathematician and not knowing what rational and irrational numbers are.

You speak about the problem domain, but the primary problem domain we are facing first is programming. And without a shared vocabulary, you can talk with other software developers, but you aren't going to be very efficient in that communication. So going back to the problem domain, as software developers we are supposed to master whatever problem domain we are facing, in order to efficiently communicate with the business side in their own domain-specific language. How are we supposed to do that if we haven't even bothered to learn our own domain-specific language?

But it goes deeper than that. Many software developers these days rely too much on libraries, without knowing how they work. And this hurts them a lot.

This is all about standing on the shoulders of giants. And it all starts from the most basic data-structures and algorithms. BFS is right up there with the characteristics of a List or a Map. It's common knowledge that everybody should know. And this common knowledge is half of "Introduction to Algorithms" by Cormen et al. So instead of reading another fluffy piece on Agile methodologies or on soft skills like the "Pragmatic Programmer", or other such bullshit, maybe people should read this one instead.

One recent problem we had was one of scaling out our micro-service-based infrastructure. And I've heard from colleagues wild ideas like "oh, lets introduce an external queue, like Kafka". DevOps for some reason think external queues are the solution to all problems. Yeah, great, but this isn't a freaking webpage reading from a database, we've got singletons, as in producers of truth that need strong consistency in their decision-making because we aren't that smart and you're just moving the problem around, because locks don't freaking scale, no matter how smart your queue is. Or "we'll just add Akka Cluster or Finagle or whathaveyou, should take care of it". Dude, yeah, we've got singletons, which means we need to do sharding and have a protocol for failure detection, so maybe we should talk about that first.

This is just a recent example. Developers are so eager to jump to the latest fads and the latest cool things, without thinking for a second if those solutions would work, only because they can't imagine how these tools are even implemented. And this isn't something that a superficial Google search can fix, because the unknown keeps piling up, the more complex the system is, until the shit hits the fan and you throw your hands in the air and bring in external consultants to fix it. And if you think the UI is spared from all of these problems, think again. I've seen dozens of Javascript-enabled interfaces with performance issues, only because of the "thundering herd" problem happening due to sloppy event handling. How many UI folks understand how Facebook's React works? Not that many.

Re: Hiring Is Broken – My interview experience in the tech industry

#633
post #602

Earlier quoted context omitted.

> I can't help but think this mentality is what lead to the recent left-pad debacle It borders on category error to compare homebrewing argument parsing with an overreliance on microframeworks extending all the way down to leftpad. Argument parsing is almost always supported directly by the language implementers in a standard library. And even if it wasn't, it's such a critical task with huge overhead for handling co…

What the hell sort of library would you crack out to do a breadth first search traversal? This is my main problem with the OP, BFS isn't some arcane complex cryptic algorithm, it's a way of moving through a data structure that becomes natural and very obvious when you think about how you can effectively traverse it for some tasks. If I were ever to want to traverse something in a breadth first search manner, then I w…

I would use one of the tree implementations in java.util. You may have heard of it.

Re: Hiring Is Broken – My interview experience in the tech industry

#634

Hiring isn't broken, dude. You just don't interview well, and you seem antagonistic even to the idea that your cachet and skills, insofar as they exist, aren't useful to the market. That's a problem -- for you. Interviews exist because employers need a way to quantify and qualify your ability. Typical computer science problems are a (flawed, but concrete) way of doing that. No reasonable interviewer expects you to re…

The 960 day github streak is an illustration of his passion to code, of the fact that he is doing it for the pleasure of coding. He said it himself that it's not there to show any skill.

Re: Hiring Is Broken – My interview experience in the tech industry

#635
post #398
post #361

It took me a year to find a new job. I got rejected from on-sites 8 or 9 times, a few other rejections before that. I've been through everything the OP has and more. I was once forgotten in an interview room while my interviewer played foosball and then went home. I've managed to pass all rounds with "positive feedback" only to get rejected three days later. I've swam through rivers of aerated bullshit to find a new…

I worked for (led) the same company for 8.5 years, then decided to go do something else. I was pretty certain that I wanted to be independent (again) but I also had a mortgage, was married, etc... So while I lined up clients and started transitioning from the current job I applied for a couple positions (note that as an executive I did this by contacting other executives (when possible) at firms, not filling out form…

Applied for Thales UK a few months ago. I was met with 19 pages of personality quiz. Seeing that, I decided I don't want to work there anymore, but I dared myself to finish that questionnaire. It was excruciatingly painful and felt really no regret when I was rejected.

Re: Hiring Is Broken – My interview experience in the tech industry

#636

I'm torn. On the one hand: the interview processes this post describes are hilariously broken. Stand up at a whiteboard and implement breadth-first search from memory! You know, like no programmer at their desk staring at their editor ever does. I think "that's the one where you use a queue, right?" is a fully valid and complete answer to that dumb question. I also think you're within your rights to demand that your…

My degree should be proof that given some time to study I am capable of implementing it.

Re: Hiring Is Broken – My interview experience in the tech industry

#637
post #398

Earlier quoted context omitted.

I worked for (led) the same company for 8.5 years, then decided to go do something else. I was pretty certain that I wanted to be independent (again) but I also had a mortgage, was married, etc... So while I lined up clients and started transitioning from the current job I applied for a couple positions (note that as an executive I did this by contacting other executives (when possible) at firms, not filling out form…

Applied for Thales UK a few months ago. I was met with 19 pages of personality quiz. Seeing that, I decided I don't want to work there anymore, but I dared myself to finish that questionnaire. It was excruciatingly painful and felt really no regret when I was rejected.

It's almost like it reinforces that you are just a commodity, meat.

I do think it's important to have a fit on teams, and I have hired people with awesome skills that were terrible cultural fits more than once.

But I'm not going to fill out personality quizzes unless I am desperate. And I work really hard to try to make sure I'm never desperate. :)

Re: Hiring Is Broken – My interview experience in the tech industry

#638
post #602

Earlier quoted context omitted.

> I can't help but think this mentality is what lead to the recent left-pad debacle It borders on category error to compare homebrewing argument parsing with an overreliance on microframeworks extending all the way down to leftpad. Argument parsing is almost always supported directly by the language implementers in a standard library. And even if it wasn't, it's such a critical task with huge overhead for handling co…

What the hell sort of library would you crack out to do a breadth first search traversal? This is my main problem with the OP, BFS isn't some arcane complex cryptic algorithm, it's a way of moving through a data structure that becomes natural and very obvious when you think about how you can effectively traverse it for some tasks. If I were ever to want to traverse something in a breadth first search manner, then I w…

> we've still avoided adding another potentially crappy dependency to our project.

No, you've just added the crappy dependency == your off the cuff implementation (which is even more work since you have to handle issues and unit testing for it too).

> What the hell sort of library would you crack out to do a breadth first search traversal?

In Python I would use networkx probably, unless there was a good reason I couldn't (such as working in an embedded environment where I couldn't install large libraries). It ought to require an exceptional circumstance to stoop to implementing it myself.

Tell me, if we switched from talking about breadth first search to, say, inverting a matrix with Gaussian elimination and pivoting, do you feel the same? Are you going to trust your implementation over something you can get from netlib?

Re: Hiring Is Broken – My interview experience in the tech industry

#639

Earlier quoted context omitted.

I read the resumes, and if the code description is interesting, I'll pull up the github repo. I read a lot of them because I do a lot of interviews, and the resumes that get passed to me for interviews all look fantastic and incredibly similar. Because good programmers have remarkably similar resumes as bad programmers -- one was made by sweat & blood, the other with bullshit. It's just text on a page, there's no way…

All I'm asking is for a bit of empathy. If you're willing to have someone fly out to you, that's an enormous hassle for them but very little for you. I kind of get the impression you're bitter or projecting something, but I can't quite put my finger on it. Not trying to be snarky, just saying.

Try re-reading the first paragraph as if you were the recipient of your message. And where do you think it's no hassle for me? I spend somewhere around 4 hours every week on interviews, for years now.

Job hunting is a big deal. It's real work, and literally everyone who's doing an interview has been interviewed, almost certainly in the same process. I studied up before my interviews, and I worked to manage my energy and capability when doing them. The article's premise that they should walk into an interview room and mystically get evaluated on traits that you can't directly measure, or compare objectively, is ridiculous. I read the article thinking this is the same type of guy that probably complains about having to see homeless people in SF. Completely entitled.

I take offense to the premise that I don't have empathy for the candidates - evaluating a person for a job is a deeply emotional affair. I have to walk a fine line between the needs of the candidate and employer. I can't hug you or take you out for drinks, as that could result in a lawsuit. The best I can do is find the interview question that lets you show off the best of your talents.

Asking for empathy without giving any in return isn't going to get you very far.

Re: Hiring Is Broken – My interview experience in the tech industry

#640

Yeah, it's broken. Google studied their own interview process, according to Lazlo Bock, examining tens of thousands of hiring decisions. The study concluded that their process was no better than random chance at finding good candidates. They continue with that process nevertheless. I have a rich network of Silicon Valley connections, built over 29 years of working for Valley companies. What I hear time and again is t…

As John Siracusa once said, Success hides problems.
Post reply on HN