LeetCode vs. Projects: What Truly Matters for Landing a Tech Job?
The Developer's Dilemma: Algorithms or Applications?
Alex and Amir are applying for jobs. Alex is focusing on LeetCode because that's what big tech companies ask in their interviews. Amir believes that LeetCode is a waste of time; he argues that nobody uses these algorithms in the actual job. Instead, he's focusing on building a very powerful Chrome extension, believing that cool projects are what get you hired.
Who do you think will succeed in getting good jobs? Today, I will tell you the truth about LeetCode and projects based on my experience of interviewing more than 100 times. I will also share some job-hunting strategies that have worked for me in the past.
My Journey: The LeetCode Grind and the Harsh Reality
Before I got a job at Amazon, I spent months grinding LeetCode day and night. I would solve one problem after another. They say that if you can solve medium problems consistently, you are ready for interviews. So, I kept practicing until medium problems started feeling easy. At this point, I was very confident about my preparation.
I started applying for different companies, including Amazon, but something strange happened. I never heard back from most of these companies. The companies that did reply rejected me without even offering an interview. This was very confusing because I knew that I could solve their interview problems. I had completed almost 300 problems on LeetCode at this point.
After a lot of rejections, I finally figured out what was going wrong.
Understanding the Hiring Funnel
You see, every company has a hiring funnel. At the top of this funnel is résumé screening. This is where they look at your resume and decide if you are even worthy of an interview. At the bottom of the funnel are the coding interviews, where they check if you can actually solve the problems.
My LeetCode preparation would have definitely helped me crack the coding interviews, but my resume had nothing to show for it—no good projects, no real-world experience. As a result, I was getting rejected at the résumé screening step. I never even got a chance to show my LeetCode skills.
After this realization, I spent the next six months building projects. But I did not build just any projects; I researched what kind of projects actually impress hiring managers and I built those specific projects. The results were surprising. The same companies that had ghosted me a few months back were ready to give me a shot.
That's when I realized something very important: Projects help you get past résumé screening, but LeetCode helps you crack the interviews. You need them both to get that job.
A Recruiter's Perspective: An Example
Here is a real example that can help you understand this better. Put yourself in the shoes of a recruiter at Amazon. You get thousands of résumés every single day and need to decide which ones to shortlist for interviews. Today, you get two interesting résumés:
- Résumé 1: Features a very interesting project that uses machine learning to detect skin cancer.
- Résumé 2: Has no real projects but shows that the candidate has solved over 500+ LeetCode problems.
Which résumé would you shortlist? Most people would pick Résumé 1, and they would be right. That's because Résumé 1 gives you confidence that this person can write production-quality code.
But here is where this gets interesting. When the candidate from Résumé 1 shows up for interviews, they might completely bomb it because they have not prepared for LeetCode-style problems. This is because Amazon designs its interviews to test your problem-solving and algorithmic thinking. They believe that if you can solve complex algorithmic problems in the interviews, you can learn anything else on the job. And that's exactly what LeetCode helps you practice.
Not All Companies Are the Same: Big Tech vs. Startups
Not every company interviews like Amazon. When I was interviewing for my first job, I applied to both big tech companies and startups.
For big tech, I would usually go through several LeetCode-style interviews that focused heavily on data structures and algorithms. For some startups, however, the process was completely different. They would focus on my projects and my ability to build features fast.
Eventually, I realized why this happens. Big tech companies like Google or Amazon can afford to train you. They have dedicated training programs and mentors who can teach you their tech stack. What they care about most is your ability to learn and solve problems, which is what they are trying to test in coding interviews. Startups, on the other hand, need someone who can be productive from day one.
Tailor Your Preparation to the Role
Another thing that affects how you should prepare is the role you are targeting. For example, front-end developers might need to do LeetCode, but the bar is usually lower than for back-end engineers.
- Front-End Interviews: These usually focus more on JavaScript concepts and DOM manipulation. Algorithmic problems would typically be easier than in back-end interviews, and in some cases, there might not even be a LeetCode-style interview. That's because front-end developers spend most of their time working with HTML, CSS, and JavaScript frameworks, so companies might focus more on the portfolio of websites you have built.
- Back-End Interviews: For a back-end role, they want to make sure that you can write efficient code that can handle millions of requests, and that's what LeetCode-style problems are designed to test.
Become a T-Shaped Programmer
The mistake most people make is that they ignore one or the other. Some people are so obsessed with LeetCode that they forget to build any sort of projects. Others build project after project but never practice algorithmic problems.
You want to become what I call a T-shaped programmer.
- The horizontal bar of the "T" represents your broad problem-solving abilities, which you get from doing LeetCode.
- The vertical bar represents deep expertise in one area, which comes from building projects.
This T-shape makes you very attractive to employers. With LeetCode, you can crack algorithmic-style interviews. With projects, you can show that you already have experience solving the exact kind of problems they want you to solve.
How to Balance LeetCode and Projects
So, how can you balance between LeetCode and projects?
First, look at what kind of companies you want to target. * If you're targeting big tech companies like Google or Amazon and you have never done LeetCode before, you should spend 70% of your time on LeetCode and 30% on projects. That's because these companies have a very standardized interview process that focuses heavily on algorithms. * If you're focusing on startups or smaller companies, flip those numbers. Spend 70% of your time building impressive projects and 30% on LeetCode. These companies care more about your ability to ship features fast.
Also, note that, as I said earlier, some companies might not even require LeetCode at all. If that's your case, focus completely on building projects.
The Project-Driven Approach to Algorithms
Is there a way to do them both together? The answer is yes. There are some projects that will require a good understanding of algorithms.
For example: * If you're building a rate limiter for a service, you might need to use a sliding window algorithm. * If you're building a web crawler, you might use Breadth-First Search (BFS) to crawl new URLs.
This project-driven approach to algorithms can help you in two ways: 1. You actually get to implement algorithms, which makes your understanding much better. 2. If the interviewer asks you a BFS or sliding window problem, you can tell them how you used this algorithm in one of your projects. This will help you impress the interviewer because most people just memorize the solution.
Even if you're using algorithms in your projects, you would still need some dedicated time for LeetCode. Create a study plan that combines both. For example, you can do LeetCode in the morning when your mind is fresh and work on projects in the evening. Or you can alternate between LeetCode and projects on different days. The key is to be consistent with both.
Join the 10xdev Community
Subscribe and get 8+ free PDFs that contain detailed roadmaps with recommended learning periods for each programming language or field, along with links to free resources such as books, YouTube tutorials, and courses with certificates.