[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)