On using AI for coding interviews
Generative AI is everywhere.
One of the more interesting and provocative uses of AI in the software industry is for code generation. Tools like Cursor and GitHub Copilot are making huge waves with people going as far as to speculate about AI replacing software developers.
I don't really believe that's happening anytime soon; however, I do think there is a growing expectation that software engineers use generative AI in their software development workflow. In fact, one way we're seeing this pan out right now is the expectation (or at least permission) for engineers to use generative AI during coding interviews.
I have heard from some folks that are concerned about this for various reasons:
- Will candidates who don't really know how to code be able to easily pass interviews now?
- If generative AI can solve leetcode questions, then what's the point of them?
- If I don't use generative AI, will I be disqualified from an interview?
I have a lot of thoughts on each of these questions!
Will candidates who don't really know how to code be able to easily pass interviews now? #
No.
Or at least, not if the interviewer is any good. Using generative AI is like using any other tool to look up information. We've had search engines for a while and I, and many other folks, don't mind if candidates use them during an interview. AI is no different.
My ask in a coding interview will continue to be this: use whatever tools you need to solve the problem, but make sure you explain your thought process and what your code does. If someone unquestionably accepts AI code without reviewing it for accuracy, that would be a big red flag for meājust like if they did the same with a StackOverflow answer or code from a blog post.
A candidate that gets the "right answer" by accepting a bunch of AI code but is unable to explain what that code is doing or why the code is architected as-is would not be someone I consider a strong candidate: I would assume they are just as likely to accept incorrect, inefficient, or poorly-architected AI code in the future.
If, however, the candidate is able to use AI tools to deliver a great solution and can explain the thinking behind the AI-generated code they accepted (or didn't accept), then that's great! In this case it appears the candidate is able to get to high-quality output and has provided assurance they'll recognize when their tooling may be leading to incorrect or suboptimal solutions.
If generative AI can solve leetcode questions, then what's the point of them? #
I'm not sure I ever knew the point of leetcode questions to begin with.
For clarity, when I refer to "leetcode questions" I am talking about brainteaser-style questions that have seemingly no real-world application but instead test how much time you spent cramming for these types of interviews.
If the only thing to come out of the generative AI boom is the end of leetcode interviews, then I will have considered it a success.
If I don't use generative AI, will I be disqualified from an interview? #
This is one of the more interesting questions. From what I have heard, the answer is "yes" for some AI-focused companies, but ideally the answer should be "no."
If someone is a good engineer, it shouldn't matter the tools they use to get the job done. If a company makes a value determination based on whether or not a tool is used rather than the quality of the output and the thought process, then that doesn't sound like a great place to work to me.
--
Software engineering during the AI boom is definitely "strange times." We're all feeling our way through this period and have many polarized opinions about this new tech.
At the end of the day though, it's important to remember that generative AI is a tool. Companies don't want people that just recklessly wield the tools they have, but rather skilled engineers who can solve tough problems.
If you enjoyed this article, consider subscribing on Feedly or your favorite RSS consumer. If you'd like to chat, I'm most active on Bluesky.