[HN Gopher] Ask HN: What is a better approach to interviewing?
       ___________________________________________________________________
        
       Ask HN: What is a better approach to interviewing?
        
       I want to make the interview experience better for applicants but
       have no control over the format or time. There is a lot of
       criticism of the algo centric approach and I'd like to change that
       within the confines given to me.
        
       Author : awalsh128
       Score  : 23 points
       Date   : 2020-09-12 19:30 UTC (3 hours ago)
        
       | jimnotgym wrote:
       | How about discussing some projects they have worked on, and ask
       | them questions about their role in the process? Have a tick list
       | in front of you of the skills you need and see if they bring them
       | up. If not you can always ask specifically about them at the end
        
       | lordnacho wrote:
       | I've interviewed loads of people over the years in different
       | ways. I'd say the real dud hires were not that different from
       | other hires. The duds were people who for one reason or other did
       | not want to do what was assigned, yet took some time to say so.
       | Personal issues for sure.
       | 
       | When hiring what works for me is looking at past experience. If
       | someone says they are a cpp performance guy, that creates an
       | expectation of what they should be able to chat about. If you're
       | making it up, you will run out of stuff to say, and I'm patient
       | enough to let people keep talking. Hopefully I'll learn something
       | too, it happens often with top pros. But basically if you're
       | experienced in a field it should be hard to come up with anything
       | where you draw a total blank. If that's the case you're pretty
       | good in my book, the main differentiator after that is whether
       | you've done exactly what the firm needs or just something
       | similar.
       | 
       | With entry level people it's hard. That's why they typically make
       | less money, it's an Akerlof lemon cut due to the being a lot of
       | people who just aren't going to be good at it. This isn't even
       | necessarily a coding thing, but general life maturity. We had a
       | guy who couldn't wake up on time to get to work, and he couldn't
       | phone in when he was late either. I reckon there's no way to know
       | about this kind of attitude problem until you hire them. This is
       | also why you can expect a relatively high jump in pay after your
       | first few years, it's proven that you aren't one of the lemons.
       | The distribution is a large mass of hard to differentiate
       | professionals, plus some duds of near zero value.
       | 
       | So for entry level, your best bet is simply finding someone you
       | think is smart. You'll end up falling back to the same thing as
       | everyone else who is hiring: the prestige of the uni they went
       | to, and some pot luck questions to make sure they picked up
       | something. However that's really not enough to know what you want
       | to know, which is whether they are able and willing to learn what
       | you need.
        
       | angel_j wrote:
       | Hiring managers in tech need to realize they are working with
       | high level learners. An expert in JavaScript can easily learn
       | React, TypeScript, etc. Somebody who knows the ins and outs of
       | Linux can easily learn Docker and Kubernetes.
       | 
       | Hire them, give them a week to catch up, and their off; or wait
       | months to find a perfect match? Any developer with a few years
       | experience knows how to pick up the next piece of technology, the
       | same way everybody else does: read docs, search blogs and forums,
       | ask StackOverflow, etc.
        
       | gagan2020 wrote:
       | I had to take 300-400 interviews in short period of time to hire
       | few candidates. I created excellent team by asking basic
       | concepts. If they could answer those then they could build a
       | product or figure the product out.
       | 
       | That works best for programmers with entry to mid-level. In
       | Senior level you need to focus more on problem solving.
        
         | danielzh wrote:
         | What are some examples of the basic concepts?
        
           | jasonpeacock wrote:
           | Data structures, complexity, algorithms, abstraction,
           | encapsulation, ...
           | 
           | You want someone that can easily talk about the pros & cons
           | of using different data structures or algorithms to solve
           | problems. Who can move up & down layers of abstraction
           | without getting confused & lost. Who can hide complexity to
           | make clean, readable, maintainable code.
           | 
           | Many people, especially junior/less experienced engineers,
           | have only memorized solutions to problems. They don't have a
           | strong toolbox of solutions and the experience to know how to
           | apply them (and evaluate the options).
           | 
           | A good problem solver is methodical - they don't just guess
           | at random data structures, they identify what the
           | requirements are of the problem and then choose the
           | appropriate data structure (or compose one) which meets those
           | requirements. They'll have a process, which may be different
           | than your process, that they use to break down problems into
           | smaller, solvable pieces.
        
             | lampe3 wrote:
             | Why do we focus so much on data structures and algorithms?
             | 
             | It sounds to me like we are forgetting all the other
             | important things.
             | 
             | Like how easy it will be to replace that data structure if
             | maybe the requirements changes? Do we really need to
             | optimize this thing fully now? Or maybe for the next 5
             | years to simple solution will be more then enough? And so
             | many other questions.
             | 
             | A lot people need to think longer then 1 minute to come up
             | with a good solution or maybe you need to try or maybe you
             | need to learn something?
             | 
             | Isn't that what we actually do? How often did we think that
             | framework X is the best but after a while it was not that
             | great? Don't we need to play around with an API to
             | understand it better? Or let me read about that and
             | tomorrow we can talk about because last time I was doing
             | something with binary trees was in university because in
             | the real world I don't need it that often because yeah we
             | have other important things to do.
        
             | tester756 wrote:
             | >You want someone that can easily talk about the pros &
             | cons of using different data structures or algorithms to
             | solve problems.
             | 
             | uh, not really.
             | 
             | In my world majority of performance issues comes from N+1
             | queries, I don't need people who can do crazy things with
             | trees. I need people who write testable code, tests and
             | care about security.
             | 
             | Of course you can argue that N+1 query fits algorithms
             | part, but very often algos mean leetcode
             | 
             | But, since "you guys" always talk about data structures
             | then I'd want to ask - how often do you use something
             | fancier than literal basics?
        
       | techslave wrote:
       | casual culture talk with 2 people, then a 2-5 day contract. only
       | works for out of work candidates of course.
        
         | jasonpeacock wrote:
         | Don't do "culture talk", thats where unconscious bias lays and
         | you will end up hiring people that are like you.
         | 
         | There are many awesome people you can hire that you wouldn't
         | hang out after work, and that's OK - you don't have to be
         | friends with all your coworkers, you just have to be able to
         | work together.
         | 
         | Instead, identify qualities & behaviors that your company
         | values or are exhibited by successful employees and ask for
         | examples of the candidate demonstrating them.
        
           | autarch wrote:
           | "Culture" is a really broad word. I agree that "culture fit"
           | is often cover for "let's hire people who are just like us
           | because I'm more comfortable that way".
           | 
           | Instead, I think we should attempt to really dig down into
           | elements of "culture" and identify the ones that are relevant
           | to the job vs those that are not. For example, some relevant
           | elements might be:                   * Preferred development
           | process.         * Pace of delivery and willingness to ship
           | bugs.         * How disputes are settled.         * Using
           | libraries vs build it in house.         * Process for
           | adopting new technology.         * Preferred communication
           | methods. Email vs chat vs video calls vs in-person (back in
           | the pre-plague times).
           | 
           | These are all important topics to address in order to ensure
           | that the potential hire will be able to work effectively in
           | the position, and that they won't be miserable.
           | 
           | And there are plenty of things that are _not_ important:
           | * Hobbies and how people spend their time outside of work.
           | * Favorite films, music, books, food, drinks, etc.         *
           | Whether you work on side and/or FOSS projects (unless there's
           | a legal issue with side projects).
           | 
           | All of these things, on both lists, could fall under the
           | nebulous "culture" umbrella. So let's stop using that word
           | and start talking about specifics.
           | 
           | I'd also note that for some of these things I expect the
           | candidate to ask _me_ about them if that's something they
           | care about. In fact, those sorts of questions are a very
           | positive signal to me. It shows that the candidate has some
           | insight into their own work and what makes them happy and
           | productive. I'm very happy to find out that this isn't a good
           | fit _before_ they've started working with me!
        
           | lampe3 wrote:
           | Yes please do culture talk but the good kind!
           | 
           | Yes people in teams should like each other because otherwise
           | you will have a bunch of unmotivated pixel pushers as
           | developers that only think when the time runs out.
           | 
           | In all of the companies were soft skills did not matter and I
           | worked for people were coming and going.
           | 
           | No you don't have to be friends outside of work but usually
           | you are still spending 8 hours 5 days a week with these
           | people and maybe for some people it is okay to not like the
           | other people in the company but from my experience this leads
           | to no good in the long run.
        
       | akdas wrote:
       | I've been writing about this topic for the last 7 months. The
       | absolute biggest change you can make within the confines you
       | presented is to switch from "looking for weaknesses" to "looking
       | for strengths". I wrote about this here during the beginning of
       | the year[0].
       | 
       | You can find all my past articles[1], and I'm happy to find you
       | specific ones. I think, given that you can't switch away from
       | algorithmic interviews, at least make the interviews more
       | collaborative, define your expectations up front, and generally
       | find ways to help the candidate show their strengths.
       | 
       | [0] https://hiringfor.tech/2020/02/10/false-positives-and-
       | false-...
       | 
       | [1] https://hiringfor.tech/archive.html
        
       | necovek wrote:
       | "Format" is very broad, so in a way you are saying that you can't
       | change anything.
       | 
       | Rather than saying how you are constrained, what freedom do you
       | have?
        
       | jasonpeacock wrote:
       | Identify what data you need to collect to show that the candidate
       | has skills & knowledge to perform the role, then ask questions to
       | collect that data.
       | 
       | Of course, this requires knowing what skills & knowledge are
       | needed for the role - you may need to review the job description
       | or push on the hiring manager to quantify them.
       | 
       | When asking problem solving or coding questions, work with the
       | candidate as if you were two teammates solving the problem
       | together - don't be adversarial, don't play "gotcha!", don't try
       | to show off or prove yourself smarter.
       | 
       | If you have an awesome candidate, they will be smarter/more
       | skilled/more experienced/more knowledgeable than you in some
       | technical areas. That's a good thing!
        
       | athoscouto wrote:
       | I don't think there is a silver bullet here. I've been working on
       | our engineering hiring process for the last couple years for a
       | company with ~200 engineers - reading everything I can on the
       | subject during this while.
       | 
       | Most articles complain about the status quo but don't offer any
       | practical advice. When they do, it is some approach that may not
       | be an option on most cases - e.g. 40 minute interview followed by
       | a 90 day probation period.
       | 
       | Live coding interview can be pretty tough for candidates, but we
       | try to make a lit bit less difficult by: - Giving them time and
       | resources to prepare. - Letting them use their preferred language
       | and IDE/editor.
       | 
       | But since you have no control over format or time, maybe try to:
       | - Use reasonable problems - to assess skills people will actually
       | need on the job. In our case it usually boils down to using
       | comodity structures like a dictionary or map to do simple tasks
       | efficiently. - Use problems that start simple but can be
       | extended. This is good because when candidates finish the first
       | part, they get a boost in confidence. It is also nice because if
       | they freeze, you can help them finish the current "level" and
       | still have material to assess other skills. - Set them up for
       | success during interview: - Reserve the first 5~10 minutes for
       | introductions, ice-breakers or questions about the interview. -
       | Reserve the last 5~10 minutes for the candidate to ask any
       | question about the company or the hiring process. - Make clear
       | that is OK to ask any question. - Help them on small blockers. -
       | Be friendly.
       | 
       | Making these little tweaks helped us to diminish the pain of this
       | kind of interview.
       | 
       | Some links/references: [1]: https://lawler.io/scrivings/erics-
       | guide-to-hiring-software-d... [2]:
       | https://medium.com/@alexallain/what-ive-learned-interviewing...
       | [3]: https://www.holloway.com/g/technical-recruiting-hiring/about
        
       | codingdave wrote:
       | Ask questions that are open-ended. Don't ask them something with
       | one right answer - give them a scenario and ask them to show you
       | how they'd solve it. That is more realistic - if they know an
       | algorithm that helps, they'll use it. If they don't, they'll try
       | something else. Either way, you are hearing their answer, not
       | trying to lead them to "the" answer.
        
       | 6keZbCECT2uB wrote:
       | I am new to interviewing, but I have two working hypotheses:
       | 
       | 1. Hire based on the resume, gut check on the interview. Is it
       | plausible that they played the role that they said they did? If
       | you were a major contributor to an RPC framework in C, but you
       | can't walk a linked list... Maybe your resume is too inflated.
       | This means that the questions are basic because their purpose is
       | not to rank candidates but to ensure the validity of the resume.
       | 
       | 2. Focus on reading over writing. I would rather a candidate who
       | can read code someone else wrote, articulate what it does, and
       | maybe plan for how to extend it than someone who can pretend to
       | invent something new.
        
       | tester756 wrote:
       | I do like things like:
       | 
       | How would you design/write xyz
       | 
       | What's wrong with this code [code] (bug, security issue, bad
       | code)
       | 
       | What do you think about
        
       | KevinAiken wrote:
       | I really liked one place I interviewed at that gave an option for
       | the technical portion of the interview. You could choose a 4 hour
       | homework, whiteboarding, or talking someone through a significant
       | non-proprietary project of yours.
        
       | sg47 wrote:
       | 45 minutes - write a simple API matching the spec in one of the 3
       | languages on your/our laptop. Use Google if you have to. Someone
       | will be in the room to help answer questions. API should be
       | functional. Returning fake data is fine (or provide data in a
       | sqlite db)
       | 
       | 45 minutes - do code review of this extremely buggy code like
       | you'd review a coworker's code
       | 
       | 45 minutes - presentation on a technical topic to one or more
       | team members
       | 
       | 45 minutes - behavioral. Let's talk about failures, conflicts in
       | your career. Who are your role models? What do they do well?
       | Leadership abilities, career progression
       | 
       | 45 minutes - troubleshooting. Here's a docker container. Make the
       | service inside it work
        
         | angrais wrote:
         | Where do you work? This process sounds solid and based on that
         | I imagine your team setup is great to be part of.
         | 
         | Am interested to learn more. Are there open positions?
        
         | Supermancho wrote:
         | That's 4+ hours if you count initial setup, meet, breaks, etc.
        
           | richardknop wrote:
           | A lot more since you have to prepare for the interview /
           | interviews. So there's several hours to prepare at least.
        
             | sg47 wrote:
             | Which part. Except the presentation, there's no prep
             | required. It's all about what you know and what you have
             | done in your career. No Leetcode, no algorithms, no bs
             | questions.
        
           | edmundsauto wrote:
           | That seems like a minimum amount of time to know if you want
           | to hire someone, IMO.
        
       | angarg12 wrote:
       | I work in a large tech company and I also hate leetcode-style
       | interviews, but I need to abide by the rules.
       | 
       | My ideal interview questions are as follows:
       | 
       | * No trick question. Reaching a solution shouldn't involve
       | obscure knowledge or an "aha!" moment. * Only basic data
       | structures and algorithms, the kind that you will realistically
       | use in most day jobs. * Start with a very basic problem, and ask
       | follow up questions with increasing complexity. * Extend the
       | problem in different dimension to probe the candidate in
       | different axis. For example, ask the candidate to design an API
       | for the code, or to run it at massive scale.
       | 
       | It's hard to come up with problems that cover all these points,
       | but you can get close. I find these kind of questions allow me to
       | assess candidate without making the process unfair or overly
       | stressful for them.
        
       | lampe3 wrote:
       | Job interviews in the IT world are a reason why I will go
       | freelancing...
       | 
       | Writing some algorithm No why should I? If I need an algorithm
       | that must be fast I will look up a peace of code that is used and
       | tested by other people.
       | 
       | No I will not live google in front of you watching me. How is
       | this a real world scenario? How came up with this?
       | 
       | Like stupid questions like: How many log entries should a service
       | have each hour? Yes this was a real question in a job interview.
       | 
       | IT Job interviews are broken in so many ways.
       | 
       | I refuse to live code or have this you now have X minutes to
       | solve a problem stuff. Again this is not how I work and also I
       | have never seen people work like that in the real world. Only in
       | shitty teams with shitty organization and where they were
       | thinking that they were agile because the sprint ends in 5
       | minutes...
       | 
       | Here is the only way of interview I tolerate these days: 1)
       | (optional) Have a call with HR
       | 
       | 2) Talk with people from the team in an open way. Talk about real
       | challenges and how the applicant can help in the challenges of
       | the team. Check if the applicant will fit your team! Good team
       | chemistry eats technical knowledge by 1000x. If you only take
       | people because they know some algorithm you will most likely end
       | up with something in Germany they call "fachidioten". They will
       | solve the problem on a technical level but will bring with them
       | 1000 other social, product and long term problems with them.
       | 
       | 3) If you still not convinced that this person is good enough for
       | your team then. Give that person a small challenge he/she can do
       | at at any time she/he wants.
       | 
       | 4) Let the applicant send you the solution and if you think it is
       | okay then talk about the solution of the applicant and see how
       | he/she reacts to criticism. Again a team that has good social
       | skills and likes each other will eat every team were you have
       | rock stars that think they are the best.
        
         | shoo wrote:
         | Possible failure modes with this approach: quite a few
         | candidates who are not strong at actually doing the work will
         | be able to somewhat convincingly "talk the talk" well enough to
         | pass stage 2. If stage 3 is done async then there's a minority
         | of candidates who will cheat and get someone else to solve the
         | challenge for them. If the org has set up a hiring pipeline
         | rather that first tries to identify strong hires before
         | figuring out exactly which team they would join rather hiring
         | to fill a specific role then step 2 might not make sense
         | either, as there's no specific team to interview.
         | 
         | I agree that the in person time pressured performative problem
         | solving & coding engineering interview process is often a poor
         | approximation of the work.
        
           | crehn wrote:
           | Some companies (e.g. Amazon) have a separate verification
           | interview to ensure the candidate is the author of the
           | deliverable.
        
             | heavenlyblue wrote:
             | I think I failed one of the interviews this way actually:
             | after having done the async part of it I did about 10 other
             | test interviews and literally forgot about what I did for
             | this one.
             | 
             | I had quite a few "aha" moments where I was "ah wait, I
             | totally didn't do that, have I?". Didn't get the job,
             | however neither did I like them.
        
         | kyawzazaw wrote:
         | Isn't that issue that it is too expensive for companies to do
         | what to have described due to volume?
        
           | lampe3 wrote:
           | which volume?
           | 
           | volume if you need to hire a lot of people? volume of
           | applicants?
        
       ___________________________________________________________________
       (page generated 2020-09-12 23:00 UTC)