me and a friend were arguing about this and i think the part i left out before is AI
like even if you accept that leetcode was never supposed to perfectly simulate the job and is just meant to test reasoning/pattern recognition/grind or whatever, does it still work as a hiring signal today?
you now have AI that can look at a self-contained coding problem, reason through it, generate multiple approaches, optimize the brute force solution, explain the complexity, all in minutes. then you have tools like Cluely and similar stuff specifically built to sit alongside interviews
you can’t really just pretend those don’t exist
meanwhile the actual job has also changed. engineers are already using AI to write code, review code, debug things, generate tests, understand unfamiliar systems, etc.
so wouldn’t it make more sense to assess someone inside an actual codebase? give them a scoped repo, a task, maybe even an embedded AI assistant and see what they actually do with it
can they find the relevant code? understand the system? decide what needs changing? tell when the AI is wrong? make the change without breaking something else?
obviously you can still cheat and obviously i’m not saying “here’s our 10 million line production repo, you have 40 minutes”
but surely a whole codebase with context is harder to just outsource to some interview copilot than “here’s one neatly packaged algorithm problem”
so i’m genuinely curious why we’re still optimizing hiring around leetcode instead of adapting the assessment to how software engineering actually works now
I've been against live coding in an interview for years. But now with AI it's something I've brought back into interviews, and it is to be done without AI. I refuse to hire someone who can't write a function by hand, let alone can't think through a problem on their own. I don't really care if they get the right answer or even if the code works. I just want to see that they are capable of thinking through something and writing something reasonable.
I'm not going to force anyone on my team to not use the tools day to day, but you'd better understand what's going on and you'd damn well be able to do your job if there's an outage. I'm also not going to have my team beholden to the whims of some LLM provider if they choose to change pricing or limitations.