I'm not opposed to leetcode questions, but if a junior engineer asks me a question literally from leetcode without changing the test details (IE, they just copy/pasted from the site instead of coming up with something slightly different), I exit the interview and email the CEO with an explanation (I'm very senior, so it makes sense to go straight the CEO).
Because of this, I have instead written my own interview questions that I administer. You won't find them in leetcode, and they're not particularly challenging- and it still filters out many terrible candidates.
Long reply but last October I had pretty enjoyable interview experience during a front-end screening at Google, for which I absolutely grinded LeetCode.
To my surprise, it was an actual front-end task. I told him jokingly "What, no leetcode?" to which he laughed saying "I have my ways".
To my even bigger surprise, it was also a DSA question in disguise.
After writing a component to render out a filesystem tree view, the interviewer asked me which algorithm I was applying for this task. I never really think of algorithms when doing front-end, only in terms of design patterns, but the answer was immediately clear that I was using DFS.
Sadly I didn't get a follow-up, I thought I just didn't pass. Then a few days after one of their massive layoff rounds, got an e-mail saying I did great but weren't hiring anymore, lol.
But I liked this approach so much that I've used variations of this question when interviewing candidates at my job.
The task itself is incredibly simple, but a surprisingly amount of people can't solve it or complicate it unnecessarily without or before asking for clarification.
I also tell them it's not necessary to write executable code. This somehow confuses people a lot? I've found a lot of candidates not comfortable writing code without an IDE, even with an "open-book" and when told it doesn't have to run.
I usually ask for some basic knowledge and some more sophisticated stuff. The questions are open instead of yes/no. The answers tell me a lot about the level of skill of someone.
Basics:
What is https and how does it work?
What is a charset?
How would you describe SQL?
Advanced:
Parse the following file... (CSV or a made up txt Format)
I have several questions that I ask. Each one is structured as python class, with unit tests that are failing. Your job is to make the unit tests pass by fixing the missing implementation/bug. You can add any debugging code, and run the interpreter as many times as you like (I use coderbyte, which isn't great, but it has an editor and an interpreter).
but typically it starts with: you have a list of 10K strings, containing duplicates. produce a counts table (IE, string -> number of times that string occurred). What python data type or class does this efficiently? What is the underlying data structure? What is the time complexity of that data structure?
Next are a few questions about a python Node class used to build a tree, where I have either a bug that breaks a recursive indented print routine, or you need to detect a cycle (IE, is the tree you handed me really a graph?)
Finally, for senior engineers or people who are going to be working with low-level code, I have a bit-packing question using DNA sequences (A, T, G, C). I work for a biotech so it makes sense to have at least one question about DNA.
I've had to refine the questions over time based on what I've seen so that nothing is rushed, the important parts are obvious, and the interviewee doesn't feel like I'm asking them to find an approximate solution to an NP-hard problem in 30 minutes.
Because of this, I have instead written my own interview questions that I administer. You won't find them in leetcode, and they're not particularly challenging- and it still filters out many terrible candidates.
reply