Leetcode Interviews Aren't That Bad
February 1, 2025
Are you procrastinating studying right now? Shouldn't you be doing a leetcode problem?
To preface this article, I've applied to over 1000 software engineering internships since August 2022. Since then, I've completed dozens of online assessments, repeated my elevator pitch across numerous interviews, and thankfully received offers. I've also ended online assessments early since I couldn't solve any questions and miserably failed technical interviews.
For each of the points I make, I'll be adding personal experiences as well.
## Pros and What Leetcode Interviews Get Right
- It tests basic knowledge of programming and programming language syntax
- Freshman year I interviewed with the Apple Maps team. I was excited and nervous. One of my first big tech interviews and they ask me [Valid Palindrome](https://leetcode.com/problems/valid-palindrome/). I recognized the problem and started trying to do a two pointer solution. My implementation had an off by one error and I somehow messed up for loop syntax in Python. After burning 30 minutes on my implementation and needing help, I did not move onto the next round
- It tests basic algorithms and data structures knowledge (binary search, sliding window, maps, sets)
- In an Uber interview, I implemented a brute force solution and as a follwup, the interviewer asked me to speed it up. I said the solution could be faster if I used binary search and the he asked me to implement it. This caught me off guard and I fumbled through my implementation. Once again, leading to rejection.
- Assesses if a candidate communicates ideas well, is coachable, and can work through a problem with someone
- During my Amazon Robotics interview, I implemented a basic DFS/Backtracking algorithm. Instead of running the code, I was asked to manually trace the code given an input. Through this task, I had to demonstrate to the interviewer that I understood the problem, understood how input was given, implemented a correct solution, and accounted for edge cases. He also asked me why I made certain decisions and I was able to explain them well. Through this exercise, I was able to secure an offer.
- See how a candidate reacts to pressure, ambiguous problem description, and tight deadlines
- The first technical round for my Palantir internship was incredibly straight forward. The interviewer joined the call a few minutes early, he said his name, mentioned that he was an SDE, asked if I had the CoderPad, then we just started. I got the vibe that I didn't have to do the typical shenanigans in the beginning of over clarifying the problem, asking about specific edge cases, and mapping out the code too much. I did those aspects briefly then started writing out my solution. I had a working solution within the time frame and at the end he said that my solution looked good and he hopped off the call, no questions at the end. This was a smooth interview and I moved onto the next round.
- The topics and interview structure are fairly clear going into it
- Compared to people I know recruiting for jobs in other industries and sectors such as Hardware, Mechanical, and Electrical Engineering, Software Engineering interviews are standard and predictable. For companies like Meta, you mainly just have to memorize their [recently asked questions](https://leetcode.com/company/facebook/?favoriteSlug=facebook-thirty-days) and you will probably get one in an interview.
- On top of this, we have dedicated sites such as Leetcode for practice, channels such as Neetcode for preparation, and hundreds of YouTube videos and online guides breaking down the process of solving these problems. Many companies also give a PDF or a few paragraphs explaining what to expect, how to prepare, and what they're looking for.
### Cons and What's Missed From The Interviews
- For most jobs, you're not going to be using the knowledge for the interviews everyday or at all.
- This point highlights my lack of deep experience in the industry but, I've never had to use any complicated or fancy algorithms to complete personal projects or tasks at work.
- For my internship at Microsoft, having prior knowledge of React and command line tools was more helpful than DSA. Similarly at Amazon, having previous Java experience was a more important prerequisite than the DFS I had to use in the interview.
- Can take a lot of time to get good and proficient
- From the perspective of a candidate this is a negative but, from it can be a positive from the employers view. I can think of three cases:
1. The candidate is smart and talented at programming so they don't even study for these algorithmic interviews
2. The candidate spent a tremoundous amount of time preparing and grinding Leetcode
3. The candidate is decent at programming and put some effort towards studying
- As an employer, any of those three candidates are good options.
- I align closest to person 2. Sophomore year I really wanted a big tech interview so I did 1-2 Leetcode questions a day until I finally landed an internship at Microsoft. Now, I do 1-2 problems a week outside of the recruiting cycle and plan to ramp back up to 1-2 per day during the summer and fall
- Sort of pay to win
- In order to easily and reliably access company tagged questions on Leetcode, you have to pay for their premium membership. There are free ways of getting it but, nothing beats the convenience and ease of just paying for premium. Another example is paying for tutors, courses, Neetcode Premium/Courses such as AlgoExpert. I and many others have succeeded without paying for resources but, they can help accelerate your learning
- Difficulty of questions asked
- The strongest argument against Leetcode style interviews is that some questions are just ridiculous. If an engineer can't solve [FizzBuzz](https://leetcode.com/problems/fizz-buzz/description/) or Valid Palindrome (like me freshman year), they probably aren't fully prepared for a job (I wasn't), and most people would agree with that. The problem arises when companies ask an incredibly challenging problem and expect candidates to solve it in 45 minutes, with an optimal solution, while communicating their ideas, then do that multiple times.
- Another aspect of this issue is that candidates are asked different problems. I've spoken to other Microsoft interns and rejects who were asked difficult questions while I was asked objectively easy questions. Is that really fair?
### Takeaways and Why I'm Buying In
Leetcode interviews aren't perfect but, they are a somewhat standardized way to check engineers' competency. I'm going to continue investing time into Leetcode because it's an amazing return on investment. I just have to dedicate a few hours per day and I can get a job making over 100k straight out of college. That's a very rare opportunity and I plan to take advantage of it.