[HN Gopher] Hiring technical talent: An exercise in clarity, pat... ___________________________________________________________________ Hiring technical talent: An exercise in clarity, patience, and preparation Author : wallflower Score : 64 points Date : 2022-05-13 00:38 UTC (22 hours ago) (HTM) web link (github.com) (TXT) w3m dump (github.com) | lordnacho wrote: | > You can also have an in-depth technical interview that's just a | conversation instead of a pass/go asynchronous take-home | exercise. | | Just a conversation is what I've always found worked. Just two | people in the same business discussing some technical topic. What | do you like about Rust? Why would you write this system in Java? | Blah blah, and if the person doesn't actually know much they will | run out of things to say. Sprinkle in some references to ordinary | tools like git or gcc, and you can't avoid using industry jargon | that will function like a shibboleth. If they know how to do | stuff they will know the words you throw at them and throw back | some of their own. If they read around their area they will know | what the adjacent areas are and they'll have opinions and more | keywords. It's not actually simple to make this up, for instance | how would you pretend to be a surgeon or a pilot? There'd be a | bunch of things you'd have to have heard of, and there isn't | going to be a shortcut to knowing what they meant. | | If they're a bullshitter and they somehow manage to blag | themselves a job, they will get found out pretty quickly anyway, | definitely before the probation period ends. | | If they're someone who understands stuff, they'll appreciate | talking to a technical peer and that will be part of the draw of | working with me. | nobodyandproud wrote: | I've been struggling to teach some engineers how to peer review | thoroughly. | | What I realized recently is that it's really an attitude issue: | Do you give a shit, or not? | | Too much time is spent vetting the unnecessary technical. | Ancalagon wrote: | This. Whats funny too that I've learned from my last job hunt | is its actually better for my career, money-wise, ladder- | climbing-wise, to _not_ care about my job function or | knowledge, but rather memorize leetcode and system design | solutions. | | Note this doesn't mean I actually strive to be good at those | things over my job though. Just pointing it out, that's what | the current technical interview process selects for. | beebmam wrote: | >Diversity and inclusion are essential, and should be reflected | not only in the job posting but throughout this process. I | encourage managers to use take-home exercises as a delta for | talking points rather than a pass/fail test. Why? Because you can | get deeply skilled engineers who can crush code, but it's not the | only thing that matters in most cases. | | Strong disagree. I would instantly decline an interview with any | company that expected me to do my interview work at home. I'm not | going to work at a company that expects me to work off my | scheduled hours. | | Moreover, I find it quite ironic that this take-home interview is | somehow supportive of "diversity and inclusion". It seems to me | that the people most likely to not have the time to do their | interview at home are people with families, and especially women, | who often are responsible for much of the house/family work | during their non-salaried hours. | [deleted] | Kaze404 wrote: | I've interviewed for companies that presented this as a choice. | You could either do a take home assignment followed by a | discussion of your solution or a "standard" technical | interview. | polalavik wrote: | I think a more important point that should be added: don't have | 500 interviews. Have at most 2 or 3 which altogether should not | take more than 2 to 3 hours of somebodys time. | | I've been to 8 hour all day interviews with a new person every | hour 1-on-1. It was demoralizing and exhausting. I've been in | interview cycles where I keep "moving up" to meet the next higher | up person and the next higher up person to the tune of 3-5 | interviews. Stop! | | You can have a meaningful conversation in 2-3 hours over a couple | days. Don't burn peoples time to find a unicorn. Most people are | pretty competent and will rise to q challenge. | | I wish a company would run an experiment where they just higher | at random from a stack of team vetted resumes. I think the | results would almost be the same as being super picky. | mbesto wrote: | > Most people are pretty competent and will rise to q | challenge. | | My experience is exactly the opposite. Most people are actually | _incompetent_. | sokoloff wrote: | I think the _applicant_ pool might be mostly incompetent. I | don't think the _employed programmer_ pool is mostly | incompetent. | | When a competent applicant goes through interviews with 3 | companies, they probably get hired. When an incompetent | applicant goes through interviews with 3 companies and | doesn't get an offer, they don't de-materialize but instead | keep applying, adding to the adversity in the pool of | applicants. | lapcat wrote: | Are these _wealthy_ applicants who don 't need a job? If | you're applying for jobs, then you either get a job, in | which case you become an employed programmer, and thus | competent in your eyes, or you eventually run out of money. | Difficult to remain unemployed for a long period of time. | bspear wrote: | The first product every candidate experiences is the interview | loop. If they have a sloppy and redundant loop, it directly | impacts the quality of talent they get. People who have lots of | options aren't going to put up with BS. Usually also shows they | have no idea what they're looking for. | | Another challenge with hiring, esp. at a startup is that many | candidates who "qualify" will not be comfortable joining a | startup, so you have to find both high quality and high intent | people. There are some solutions that address this like | https://topstartups.io/ and https://angel.co/ to some extent. | | In general, there needs to be clearer signaling of preferences. | Too much time wasted. | Ancalagon wrote: | Totally Agree. The endless interviews are the worst ones, and | I've dropped out of cycles before because they were too long. | | And I like the experiment idea, although I don't think anyone | will ever do it without a boatload of cash to risk for no | reason. | polalavik wrote: | True. it just grinds my gears - whats the point of a degree | if at the end of the day almost 100% of companies assume I | know absolutely nothing and will completely flounder in their | company if I cannot jump through their little algorithmic | brain-trivia hoops? | | People talk a lot about the price of college not being worth | it and that enrollment is declining because of the price + | salaries. I think thats one part. but I'm not sure I've seen | a discussion about how nearly every company out there has no | confidence in a college degree. | lapcat wrote: | > nearly every company out there has no confidence in a | college degree | | Or in job experience, for that matter. | | "You need to have 10 years experience in a technology that | has only existed for 5 years, and also we assume you're a | liar and discount all experience anyway." | polalavik wrote: | I was about to tack that on. Not only the badly worded | job descriptions, but zero trust that you actually worked | at $COMPANY and did some $JOB. | | You can verify that pretty anonymously/easily (with the | interviewees permission, of course) by acting like a | landlord or something, calling the previous employer and | asking if $PERSON works/worked for your company and had | $TITLE and did they work there $YEARS. | | That should almost be the first step imo after the quick | "are you a person / do you have these skills" interview | which is normally reserved for an HR person who doesn't | know a bit from a byte. If they picked up the phone, | claimed to have some skills, a company they work/worked | for genuinely seems to exist and employed them, heck hire | them - I bet 9/10 it would work out just fine. | [deleted] | nscalf wrote: | I turn down interviews that end up being >4 hours. When you get | to a senior engineer level, these interviews cost hundreds to | thousands of dollars of our time. Often times technical | performance doesn't _get you_ a job, it just keeps your from | losing the job. The decision is heavily dependent on how well | you got along with the hiring manager and what type of mood | they 're in when they meet you. | | If you're unlucky, you'll flounder on one of the esoteric | algorithm questions that have little to no correlation to your | performance at the job. In this case, you've entirely wasted | your time. | returningfory2 wrote: | > I wish a company would run an experiment where they just | higher at random from a stack of team vetted resumes. I think | the results would almost be the same as being super picky. | | Have you ever interviewed someone whose resume looked good but | who couldn't code basic things? The kind of candidate FizzBuzz | was invented for? | | I interview at a FAANG and encounter these candidates all the | time. I feel the approach of "if their resume looks good they | must be fine technically" makes sense until precisely the point | when you interview one of these candidates. | ipaddr wrote: | Who cares if they can do the job. | | Someone who has a resume with accomplishments means that | person has a proven record of getting the job done. Not being | able to do a FAANG FizzBuzz has no relationship to their | ability to get the job done. | | You never hired these people so you have no idea how they | would do either. | | Have you ever heard of someone hiring a surgeon by giving | them an over ripe orange and a plastic knife and asking them | to cut out every 2nd segment without getting any juice on the | table? | ryandrake wrote: | I think OP is talking about people who literally can't | code, yet list a track record of 10 years successfully | writing C++ code on their resume. And you need someone who | can write code--not someone who can write about their | coding accomplishments. We've all had that experience of | reading someone's resume full of accomplishments that would | have required the candidate to write code, then sitting | down with them and they can't even come up with a for loop. | popularonion wrote: | > Someone who has a resume with accomplishments means that | person has a proven record of getting the job done. | | This sounds good, but experience has taught me it's just | not true. | | It's so easy to claim credit for accomplishments where | other people did 90% of the work. And in a big company it | takes about 2 years for a bad hire to get pushed out, if | they ever are. | lapcat wrote: | > And in a big company it takes about 2 years for a bad | hire to get pushed out, if they ever are. | | Two wrongs don't make a right. I wish that engineers | would spend half as much time trying to correct the | organizational dysfunction of their companies as they do | on leetcode and the like. | | The tech industry that likes to brag about "innovation" | and "disruption" seems very conservative and resistant to | change as far as hiring is concerned. Everyone seems | complacent about that and stuck in the status quo. Then | they complain about a talent shortage... | necubi wrote: | Surgeons have to do a _7 year residency_ before they get | hired. There 's nothing remotely comparable for software | engineers. | lapcat wrote: | > Surgeons have to do a 7 year residency before they get | hired. There's nothing remotely comparable for software | engineers. | | Yet software engineers with 7 years of experience are | still assumed to be fakers. | vsareto wrote: | Surgeons are vetted way beforehand by tests that are way | harder and way more stressful than any engineering | interview round. They also possess a widely recognized | credential from (usually) reputable schools. Software | doesn't have anything close to a surgeon's credentials as | far as wide recognition/acceptance and rigor go. | | I would love a widely recognized and rigorous credential | that I could study for and work towards if it meant I never | had to do another technical interview again. They can be | less rigorous than surgeons since we're not saving lives, | obviously. | treeman79 wrote: | I spent a couple years hiringly crazy at a fast growth | startup. | | After a while it got to the point where I'd walk in give an | easy five minute coding exercise walk out and give a thumbs | up or down. They could use any language editor or tool they | wanted. We even provided a few alternatives they could pick | from in case they just had a weird mental block on our | preferred one. | | Others would make sure that they weren't too insane | personality wise. | | Other team members were constantly shocked by candidates that | were verbally great but couldn't do deal with hashes or | arrays at all. | gopher_space wrote: | > Other team members were constantly shocked by candidates | that were verbally great but couldn't do deal with hashes | or arrays at all. | | Quick questions like this always throw me. I don't think | about programming in a way where free floating questions | make much sense to me initially. | treeman79 wrote: | A a b b c c c c d e | | Give me a count of each letter. | | Give me a function that given a number returns the | letters that have that many in it. You have 60 minutes. | Any language. | popularonion wrote: | In my experience interviewing, about 25% of candidates | would fail the first part and another 25% would fail the | second part. | | This is after the initial resume screen and sometimes | even after they did an online leetcode style test. | symfoniq wrote: | I'll be looking for a new contract or job in June. Last | time through the process, someone actually told me I was | bad at interviews! They might be right; I spend a lot | more time doing the job than looking for jobs. I'm not | looking forward to the grind, and doubt I would be so | fortunate to run into fun little problems like this one: | letters = %w(A a b b c c c c d e) letter_map | = Hash.new(0) letters.each do |letter| | letter_map[letter] += 1 end def | print_count(map) map.each do |key, value| | puts "\"#{key}\": #{value}" end end | def match_count(map, count) map.select { |key, | value| value == count }.keys end | print_count(letter_map) match_count(letter_map, 4) | lapcat wrote: | > Have you ever interviewed someone whose resume looked good | but who couldn't code basic things? The kind of candidate | FizzBuzz was invented for? | | It's a self-fulfilling prophesy, if you're using FizzBuzz to | judge whether people are competent. | | Programmers aren't stage performers, but companies treat | interviews like auditions. Anyone with "performance anxiety" | is assumed to be incompetent, which is silly. The tech | interview/audition is unnatural and very different from | normal work. | | It's been shown by researchers over and over that interviews | test for anxiety, not skills, but interviewers refuse to | listen. https://news.ncsu.edu/2020/07/tech-job-interviews- | anxiety/ | 0x20cowboy wrote: | I would love to see some studies on this. | | I am almost convinced that the market has made it so people | have to lie on their CVs to get through the HR filters to | even have a shot. | | I've only ever interviewed people for "normal" level jobs, | and I have never once seen someone lie on their resume or | even act like they knew something they didn't. | | I think big companies either make up this problem, or they | created this environment for themselves. | polalavik wrote: | I agree that incompetent people are out there, but I also | think the interview setup is completely unnatural and nerve- | racking. | | I've been working 10 years, can get things up and running | pretty fast, learn fast, but I'm super anxious in interview | (and I've done hundreds). I'm just an anxious person, so most | of the time I completely freeze up. Perhaps finding a better | way to interview is a better way to hire for diversity. | | I think there are two camps of people: truly incompetent | liars that look good on paper and people just straight up bad | at interviewing who are perfectly qualified. So how do you | give the latter a fighting chance? | lesuorac wrote: | I mean what questions are you getting that you freeze up on | but could otherwise solve in ~1h? | | I nearly always use a glorified DFS and I find that roughly | | - 50% of the candidates cannot write an iterative or | recursive function (never mind actually solve the problem). | | - 15% of the candidates can't figure out how to pass data | recursively (i.e. a counter) and resort to a global or do | it incorrectly (i.e. pass-by-value which won't work). | | - 10% start with an iterative solution and change to | recursive once they start having trouble (IMO good call but | it is solvable iteratively). | | - 10% actually come up with a completely correct answer. | | ~ 5% test their solution with non-provided input. | | Sometimes I do wonder what prep the candidate has been | given. A lot of the time they seem afraid to add a new | function and instead only modify the provided template (do- | able but obviously more difficult). | lapcat wrote: | > I mean what questions are you getting that you freeze | up on but could otherwise solve in ~1h? | | You're thinking that the difficulty of the question | matters, but it doesn't. The difficulty is the situation. | You freeze up in an interview, but then immediately after | the interview you go back and solve the same problem | quickly, because the anxiety is gone, and nobody is | standing over you watching. But you don't get a second | chance after you're rejected. | | If you're _not_ anxious, you can solve very hard | problems. If you are anxious, you can 't solve very easy | problems. Many interviewers are astonished that | candidates can't do FizzBuzz or whatever, but it's often | because these interviewers don't understand fundamental | human psychology, and expect everyone to be a robot with | no emotions. | 331c8c71 wrote: | Can't upvote enough. | | I tend to freeze big time in tech/mathy interviews unless | I feel there is a good emotional connection with the | interviewer. | lordnacho wrote: | I often google even very basic shit. If the IDE doesn't | give me the structure of the for loop in a given | language, I look it up. If I forget how to split a | string, I look it up. If I forget what the print | statement looks like, I look it up. | | Naturally, someone interviewing me who's just written a | for loop in the language is going to wonder wtf I'm doing | in the interview, because to them it seems like something | everyone would know. | | Someone who understands how to think about the problem | could easily get disqualified because they don't have the | little things to hand. | lesuorac wrote: | > I often google even very basic shit. | | Ok but can you not write a pseudocode version of say | fibonacci recursively? Like I don't dock people _just_ | because their code doesn't compile and when I go to run | it through a bunch of test cases I wrote, I'll fix | compilation issues. So if you write `for(int i=0;` but | the interview was in JS so `int` doesn't work I won't | care. | lordnacho wrote: | Yes, and I agree pseudocode should be doable if leniently | judged. | | But I guess it's easy to be impressed with the guy who | also wrote the thing out in a way that compiled, even | though you were not testing for that? | | At some point the code deviates enough from the platonic | ideal that it's no longer a perfect score. The issue is | when that is? | edmcnulty101 wrote: | Pass data recursively | | You mean back up the stack via the return statement? | | or via parameters in the function call? | lesuorac wrote: | Either. | | Like I could have a recursive solution that returns the | sum of the length of the sub-arrays or I could just pass | a mutable object and update the length there. | | Which way would depend on the exact problem (i.e. Strings | would be best collected in a StringBuilder rather than | concatenated but `lengthParam` would probably more clear | if it returned a number instead of using the Array). | ``` const lengthParam = (a,p) => { | if(Array.isArray(a)) { for(let c of a) { | lengthParam(c,p) } } else { | p[0] = p[0] + 1 } }; var b = | [0] lengthP([1,2,3,[4,5],[6]], b); | console.log(b[0]) // 6 ``` | throwawayboise wrote: | Honestly, most companies will prefer the candidate who | projects poise and confidence rather than anxiety, all else | being equal. Sorry but that's life. Work on overcoming | that. | lapcat wrote: | > Honestly, most companies will prefer the candidate who | projects poise and confidence rather than anxiety, all | else being equal. Sorry but that's life. Work on | overcoming that. | | Most companies will also prefer the candidate who who | projects tallness and youth. | | Maybe these biases are something that companies need to | overcome? | MontyCarloHall wrote: | In my experience, the latter can pass the interview with | some coaxing. Someone who knows the right answer but who's | frozen due to anxiety can often complete a thought that's | already in their head if someone else starts verbalizing | it. On the other hand, no amount of hints can help the | truly incompetent liar, since they can't produce any | thoughts on how to solve the problem in the first place. | | The problem is that many (most?) interviewers have no idea | how to effectively coax a candidate along. They usually sit | there in silence for an awkwardly long period of time and | then fail the candidate, or offer totally irrelevant hints | that don't reflect how someone would actually think about | the problem. | VirusNewbie wrote: | >Have you ever interviewed someone whose resume looked good | but who couldn't code basic things? The kind of candidate | FizzBuzz was invented for? | | I think that's fair, and why most people aren't against an | hour or 90 minute tech screen where someone has to write some | code. But I've had to do a 3 hour take home assignment, then | an hour long tech screen solving some medium level LC | problem, THEN an all day onsite doing design+multiple coding | rounds. | | On top of that there's the randomness factor. I know people | who interviewed at FAANGs and basically had to do some easy | level graph traversals and some linked list manipulations. | Others get asked hard bottom up DP coding questions and need | to use Prim's algorithm for MSPs like, wtf lol those are not | the same thing. | cscurmudgeon wrote: | Do you need a full day of interview to screen for FizzBuzz? | pluc wrote: | I have 25 years of experience and most interviewers interview me | like I'm out of college. It's mildly enterfuriating. | gopher_space wrote: | I'll take that over "guess the keyword in a non-technical | project manager's head". | [deleted] | ipaddr wrote: | If you want to out hire competition the solution is simple. Seek | out premium candidates and give them a job offer before you even | talk to them. | | If someone is the head of some product at google and you want | them cold email an offer you were always comfortable offering. If | they accept or counter or want to talk or engage perfect you beat | all the others. | | It could work for targeting lower paying employees at less known | places. If the person is worth at least what you are offering | it's a no brainer. If a recruitor reached out to me with an offer | in hand even if it was lower than my current pay I would engage | knowing they are serious. When they reach out now and still | require 4 rounds of interviews it becomes a farce to get someone | paid for getting people into a hiring funnel. When a founder | reaches out personally you listen. | ceeplusplus wrote: | Most premium candidates won't consider your $Y M in illiquid | equity to be actual money. And if you're some no-name startup, | they definitely won't even consider you. You can't afford to | pay them cash either. | | I also strongly believe in the 10x programmer idea [1] and | you're not even going to come across these people unless you | run in the same social circles as them. Some random manager at | Google is not necessarily a 10x candidate. It's very difficult | to vet potential 10x candidates from just a glance because so | many people exaggerate and bullshit on their resumes. | | [1] https://www.joelonsoftware.com/2005/07/25/hitting-the- | high-n... | akavi wrote: | Just anecdata, but I've been given offers without interviews | purely on the basis of my resume, and viewed it as a pretty big | red flag. | | I've known enough people who've gotten where they've gotten | with little technical ability that I'd be suspicious of a place | that doesn't even attempt due diligence. | chiefalchemist wrote: | > The hiring process is more than you evaluating the talent; the | talent also evaluates you. Joining a company and a team is a bi- | directional relationship. | | Essential! | | In fact, I had an interview earlier today. The two FE devs on the | other end of Zoom, best I could tell, didn't look at a single | repo in my CV. Instead we batted around fluff-ish questions (for | the most part) instead of "In the repo in you CV why did you...?" | | I was disappointed and then some. ___________________________________________________________________ (page generated 2022-05-13 23:00 UTC)