• sugar_in_your_tea@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    15
    ·
    edit-2
    16 hours ago

    Online coding assessments

    Yeah, that’s the first problem here, don’t do that.

    We do live coding and have them explain their thought process. Working code is nice, but we’re really testing communication and reasoning. Coding ability in a given language isn’t super important, that can be learned, provided you’re good at reasoning.

    Comp Sci Fundamentals-

    We blast comp sci questions as well, but we rephrase if they obviously don’t have a comp sci background. The point isn’t pass/fail though, but more to assess breadth of knowledge.

    I don’t really care if you know what the L is in SOLID or the term for an iterative alternative to recursion, but I do want to know if you can come up with the search terms for a problem you have.

    Architecture / Design

    We ask everyone these questions, and only dig deeper if they give good answers. We’re looking to see what role you should have, which might not be the one you applied for. For example, we hired a frontend intern candidate as a full time jr backend due to how the interview process worked out. We also hired someone as mid tier that applied for senior.

    AI

    If you use AI to answer questions in an interview, you’re immediately disqualified. It’s pretty easy to tell if they’re reading from a script or actually answering honestly, and if it’s not, it’s easy to fire them in the first few weeks once they prove their incompetence.

    If you can fool us during the interview process and produce good code afterward, then I guess good job? I don’t really care how you do it, as long as you do the job.

    We do in-person interviews when practical, but online works too. You just need to be on your guard more for remote interviews.

    • d0ntpan1c@lemmy.blahaj.zone
      link
      fedilink
      English
      arrow-up
      4
      ·
      10 hours ago

      Yup, this is what I’ve always done for interviews.

      Technical questions are purely to see what background someone has and how they explain or reason their way to some sort of answer. Its also nice to see if someone will say they don’t know something but offer their best guess, which is always a good indicator. I’ll usually provide the answer right away after they’ve answered, both to boost confidence for correct answers and because a quick explanation has a tendency to ease tension, especially if they then relate it to some other knowledge they have or suddenly recall the info with a little help.

      The other thing I do is ask questions about disagreements with previous coworkers or managers. If someone starts explaining themselves into being superior to others, it’s a red flag. Its nice to get an idea for how someone resolves conflict or what kinds of complications they’ve run into, but I mostly just want to see how they view themselves compared to others.

      I know my approach is sometimes strange to others doing hiring with me, but it’s all pulled from my time as an education major (I switched out after 3 years to another degree) and real world teaching experience. Good teachers ask questions to understand how a student learns and what they know broadly, not to get an exact percentage of points. (State/district testing requirements aside)

      A new thing I’ve been trying instead of live coding is having people map out a loose architecture for some sort of API data process or frontend data process, then walking us through it. Its more or less a pseudo coding excercise, but it takes the stress of actual language knowledge away. I’m not sure if it’ll stick long run, but it’s been an interesting experience.

      • sugar_in_your_tea@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        1
        ·
        9 hours ago

        The other thing I do is ask questions about disagreements with previous coworkers or managers

        I like these kinds of questions as well, but I keep it to technical disagreements (i.e. best idea wins) since we have another round where we cover soft skills specifically.

        map out a loose architecture for some sort of API data process or frontend data process

        I think this is pretty easy to BS through though.

        We usually cover this as a follow up to a live coding exercise, where we ask them, without any code, how they’d adjust the project if the requirements change. How can they optimize for storage size? Lookup performance? As it gets more complex, what can we do to keep it maintainable? If we add feature X, is it better to put that on the FE or BE? Why?

        • d0ntpan1c@lemmy.blahaj.zone
          link
          fedilink
          English
          arrow-up
          2
          ·
          9 hours ago

          I think this is pretty easy to BS through though.

          For sure. So far I’ve only used it for one batch of interviews so I’m not 100% set on it, but we used it as our last round to narrow down between a few finalists and we were already confident they were not people who would BS the excercise.

  • skip0110@lemm.ee
    link
    fedilink
    English
    arrow-up
    26
    ·
    20 hours ago

    I have to do many interviews.

    I don’t care if the applicant uses AI, or any other tool available to them. I just care about whether they can explain, debug, and modify/extend code (which they wrote, or at least composed somehow and are presenting as their work).

    I’ve definitely been suspicious of AI use, and also had some applicants admit to it. And I don’t count that against them any more than using a web resource.

    But, there is a very high correlation between using AI and failing at the explain/debug/modify part.

    • rebelsimile@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      5
      ·
      18 hours ago

      I have a question, as someone who struggles with a little developer imposter syndrome. I don’t work as a dev, but I’ve coded from the ground up (using AI initially but basically only these days for syntax checks or to help accelerate writing something routine), including multiple websites (initially in React/Tailwind but lately in raw HTML/CSS), games (using python/godot), etc, for my own purposes primarily (as I have a completely different day job). Is that typical of a candidate you’d see in an interview? Are you having to screen candidates like that for whether they know what they’re talking about or are you referring to more junior people (assuming that what I’m profiling isn’t super junior)?

      • skip0110@lemm.ee
        link
        fedilink
        English
        arrow-up
        1
        ·
        7 hours ago

        In my current role, I mostly hire “senior” roles. So the applicants (which are pre screened before I see them) typically have 5+ years experience. I ask about the code they’ve written, and then I ask some questions about how they would extend the code (to meet some new requirements). What I’m looking for is not so much a specific answer, but more so “can we think through this problem together.”

        That said, I’ve been the interviewer for “junior” roles…and there isn’t as much correlation between ability and experience as you might think. So no reason to feel imposter syndrome. I’ve worked with extremely smart/talented developers without any formal training.

        I think all the stuff you’re doing sets a really good foundation for a career in software, if that’s where you want to go. One thing I might suggest is making a few contributions to open source or team projects. It can be useful to learn about how to read code, and present code to others (or to fit your idea into an existing code base).

        • corsicanguppy@lemmy.ca
          link
          fedilink
          English
          arrow-up
          1
          ·
          5 hours ago

          “senior” roles.

          5+ years experience.

          Wow. It better be extremely deep and broad experience if they’re in a position to mentor others; and even then.

      • sugar_in_your_tea@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        8
        ·
        16 hours ago

        Not OP, but here’s my 2c as someone also part of the interview process.

        I had an interviewe where the candidate asked if they could use AI, and I told them to use whatever they normally use in development. I’ll skip the details, but basically the AI generated wrong code, which they missed, and they corrected when we pointed it out. That happens. But then we had them refactor and the AI made the same mistake and they missed it again, which we pointed out, and they fixed. But that wasn’t the nail in the coffin. We then asked them how confident they were about the code (we saw other errors that we didn’t mention), and they said 100%. They didn’t get the job.

        I don’t care what tools you use, I mostly care how you approach problems and whether you overstate your abilities. We’re in the business of producing working code on time, so we need devs who can at least notice when they need more time to check things. We were hoping they’d say they needed to write some tests to get a code review, not just ship it.

        Our coding projects are designed such that a competent dev can complete them quickly (5-10 min for first round “weeder” task, 20-30 min for second round “engineering” task), and we allow double the time expected to cover for nerves. In fact, we might hire you even if you fail spectacularly, provided you can explain your approach (i.e. it’s just nerves).

  • Nighed@feddit.uk
    link
    fedilink
    English
    arrow-up
    20
    ·
    20 hours ago

    My favourite tech interview technique was the code review style. Give them some code with a range of deliberate issues and ask them to code review it live on the call.

    Tests their code comprehension and as you can ask them questions live, it’s reasonably AI proof (I think). You can ask them to refactor things on the call, which tends to be something AI is weak at. It also requires no take home work for the applicant.

    My company has just said that AI use in the interview is fine, but we will be asking questions as they work through it to check they actually understand things.

    • pHr34kY@lemmy.world
      link
      fedilink
      English
      arrow-up
      7
      arrow-down
      1
      ·
      edit-2
      19 hours ago

      There’s probably a few things you can do live on a call.

      I always wanted to try passing a common function through a minifier then a beautifier. Show them the code with unhelpful variable names, and ask them what name they would give the function.

      A good programmer would be able to identify a string compare function or an IP bitmask eval function pretty quickly.

      • iopq@lemmy.world
        link
        fedilink
        English
        arrow-up
        7
        ·
        18 hours ago

        I probably wouldn’t, because I call a library to do it for me. That’s because I’m not a C programmer and it’s easy to use libraries in other languages since they have package managers that just import all the other packages

    • Voroxpete@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      26
      arrow-down
      1
      ·
      20 hours ago

      As someone doing the hiring, referral hires fucking suck. I want the best candidate, not the most connected candidate, and I don’t want to have to deal with the bullshit company politics when the referral hire doesn’t work out.

      • Telorand@reddthat.com
        link
        fedilink
        English
        arrow-up
        4
        ·
        18 hours ago

        My company actually pushes referrals and even offers a bonus for a successful hire to whoever recommended them, but the candidate still has to pass a bunch of interview hurdles, so it’s rare that it all works out anyway.

        I think referrals can work out, if your interview process is grueling to begin with.

        • Nighed@feddit.uk
          link
          fedilink
          English
          arrow-up
          2
          ·
          17 hours ago

          My understanding is that is included in nepotism nowadays (used to be family only, now more general)

          • lobut@lemmy.ca
            link
            fedilink
            English
            arrow-up
            3
            ·
            17 hours ago

            Oh really? That’s new (to me) I didn’t know that! Cheers!

            • Nighed@feddit.uk
              link
              fedilink
              English
              arrow-up
              2
              ·
              16 hours ago

              Looks to be about 50/50 between the dictionaries I looked at. Wikipedia includes friends in it’s definition.