<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Lenny Garnier</title>
    <description>The latest articles on DEV Community by Lenny Garnier (@lenny_garnier_ee9bb5893cc).</description>
    <link>https://dev.to/lenny_garnier_ee9bb5893cc</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3902318%2F170ec513-c742-4b1a-92a1-46f950387e78.jpg</url>
      <title>DEV Community: Lenny Garnier</title>
      <link>https://dev.to/lenny_garnier_ee9bb5893cc</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lenny_garnier_ee9bb5893cc"/>
    <language>en</language>
    <item>
      <title>Why Developers Get Rejected (And Never Find Out Why)</title>
      <dc:creator>Lenny Garnier</dc:creator>
      <pubDate>Tue, 28 Apr 2026 12:03:34 +0000</pubDate>
      <link>https://dev.to/lenny_garnier_ee9bb5893cc/why-developers-get-rejected-and-never-find-out-why-15b4</link>
      <guid>https://dev.to/lenny_garnier_ee9bb5893cc/why-developers-get-rejected-and-never-find-out-why-15b4</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7e84qb6ghdph7j5iydbe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7e84qb6ghdph7j5iydbe.png" alt=" " width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;The application process is a blackbox, let's first crack it open then come up with a plan&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;"&lt;em&gt;The first step toward change is awareness.&lt;/em&gt;" — Nathaniel Branden&lt;/p&gt;

&lt;p&gt;Hey! I'm Lenny, a junior Software Engineer. Like most developers I know, I've felt the pain of the job search, there's usually two scenarios when applying:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The sniper:&lt;/strong&gt; Apply to a restricted number of job offers, focus on quality over quantity, actually read the whole job description, look what matches, if it interests you to actually work there, reach out directly to the company people with a (human) message.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The spammer:&lt;/strong&gt; Apply to almost any job that lands under your mouse cursor.&lt;/p&gt;

&lt;p&gt;I wish either of these guaranteed landing a job but the hard truth is that after trying both, getting rejected 200+ times I can say that it is not that easy to land a tech job.&lt;/p&gt;

&lt;p&gt;To do so we need to dig deeper than just how you apply, we need to figure out what happens after you click the "Submit application" button, because if we know exactly why we're getting rejected then we know exactly how to stop getting rejected.&lt;/p&gt;




&lt;h2&gt;
  
  
  Part 1: Cracking the blackbox
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1.1 — The invisible pipeline
&lt;/h3&gt;

&lt;p&gt;Most developers think applying for a job goes like this: send a CV, someone reviews the CV then gives the response. The reality is that between "Submit" and "Unfortunately…" there's an entire pipeline that sometimes &lt;strong&gt;rejects you even before your application reaches human eyes.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That process used to be true. Ten, fifteen years ago applying for a job meant that a human will read it and manually review your application, that was the process when the volume was manageable.&lt;/p&gt;

&lt;p&gt;But in 2026, a single job posting at a mid-sized tech company is likely to receive anywhere from 200 to 1k+ applications, sometimes more. It is not a viable option anymore for companies to manually review every single one, not out of laziness but out of arithmetic.&lt;/p&gt;

&lt;p&gt;To fix that issue, a first layer of filtering was added to application processes: the Applicant Tracking System.&lt;/p&gt;




&lt;h3&gt;
  
  
  1.2 — The ATS layer
&lt;/h3&gt;

&lt;p&gt;The ATS is software, not a human. Its job is to filter the hundreds of applications received and filter out the ones that do not "match" the job description.&lt;/p&gt;

&lt;p&gt;The ATS parses your CV into plain text and looks for keywords. So if your CV does not mention the skills listed on the job description, there's a high chance that it will be rejected automatically.&lt;/p&gt;

&lt;p&gt;Another effect of the ATS is that as said previously, the ATS will parse your CV into plain text, but this parsing process is not perfect and can never be, meaning that if your CV lists a skill in a fancy box the ATS may not even catch it.&lt;/p&gt;

&lt;p&gt;That is why when making your CV it's always important to keep in mind whether it is easily readable or not. &lt;strong&gt;Not fancy, not unique, first and foremost it needs to be readable.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The ATS is "dumb", it will not make any conclusion. It won't look at your experience, your projects, its only job is to look for keywords and filter out CVs whose matching percentage with the job description's hard and soft skills are too low. Once you understand that, passing the ATS becomes straightforward. The real challenge starts at the next layer.&lt;/p&gt;




&lt;h3&gt;
  
  
  1.3 — The Human layer
&lt;/h3&gt;

&lt;p&gt;If your CV passes the ATS, it finally reaches a human, usually an HR recruiter. Not a developer. Someone who may not know the difference between Python and JavaScript, or the difference between a Senior and Mid-level Engineer.&lt;/p&gt;

&lt;p&gt;But then why does your application reach their eyes first in the pipeline? Well developers are busy, it is unfair to be reviewed by someone who is likely to not fully grasp your profile as an applicant, but it's unimaginable to make developers look at applications that early in the pipeline, the ATS does filter some applications out but it's likely that there's still 20–100 applicants left to review, again it's not laziness it's arithmetic.&lt;/p&gt;

&lt;p&gt;The role of the HR that will review your application is closer to the ATS than you'd imagine, the purpose is to filter out even more applications, thus they will spend a few seconds looking at your application and choose whether you're suited to continue in the process or not.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6 seconds.&lt;/strong&gt; That's the average time HRs spend making that decision, that's too short to read, instead they scan. They look at your current title, the companies you've worked at, how long you stayed at each one, and whether anything visually stands out.&lt;/p&gt;

&lt;p&gt;This is where a lot of developers get it wrong, they optimize their CV for technical depth listing every technology they've ever touched, detailing every project they've shipped. But the recruiter cannot evaluate any of that, &lt;strong&gt;it's noise.&lt;/strong&gt; What they can evaluate is &lt;strong&gt;clarity, structure, red flags&lt;/strong&gt; and whether your profile looks like what they've been told to look for.&lt;/p&gt;

&lt;p&gt;So what would stop them immediately when reviewing an application? Let's see some examples with their deduction that would stop their reading immediately:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Short stay at each company&lt;/strong&gt;&lt;br&gt;
The applicant has trouble being consistent at one job, it is likely that he loses motivation few months into the job.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Big time gaps between jobs&lt;/strong&gt;&lt;br&gt;
What happens during those gaps? Nothing? Working on side projects? What makes the applicant look for a job again after the gaps? Simply money?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. CV has 2+ pages with less than 10 years of experience&lt;/strong&gt;&lt;br&gt;
The CV is unnecessarily long, thus probably containing inflated information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. CV is too colorful, too many graphics&lt;/strong&gt;&lt;br&gt;
Such CV screams "I'm compensating"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Font too fancy or too small&lt;/strong&gt;&lt;br&gt;
Hard to read, is not worth the time and energy deciphering the text&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Unprofessional&lt;/strong&gt;&lt;br&gt;
Selfie profile picture / using &lt;a href="mailto:dragonslayer2003@hotmail.com"&gt;dragonslayer2003@hotmail.com&lt;/a&gt; as mail / typos — it just doesn't look serious, makes the CV lose all credibility&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. Inconsistencies&lt;/strong&gt;&lt;br&gt;
Overlapping job dates / 5 years of experience but graduated 3 years ago / title on CV different than LinkedIn's. Any of these makes your CV lose 100% of its credibility, once they find one inconsistency they deem you too risky to trust.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;8. Too many skills&lt;/strong&gt;&lt;br&gt;
Listing 40 technologies doesn't make you seem competent, it makes your CV look inflated and unreliable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;9. "Familiar with…"&lt;/strong&gt;&lt;br&gt;
Means the applicant lists in their CV skills they master no aspect of.&lt;/p&gt;

&lt;p&gt;Bad news is that this list is far from complete, because it's impossible to enumerate all existing red flags.&lt;/p&gt;

&lt;p&gt;Good news is that I'm sure this list sounds obvious, meaning you can perfectly figure out yourself what is and what is not a red flag in your CV. Just try to take the point of view of the HR that is not fully qualified in tech.&lt;/p&gt;




&lt;h3&gt;
  
  
  1.4 — The hiring manager layer
&lt;/h3&gt;

&lt;p&gt;If you make it past the HR recruiter, your application finally reaches someone technical: the hiring manager. This is the person that will actually work with you, manage you, or be your future colleague. They know what the job requires because they do it themselves.&lt;/p&gt;

&lt;p&gt;They look at your application completely differently.&lt;/p&gt;

&lt;p&gt;Where the HR recruiter was scanning for red flags and structure, the hiring manager is looking for signals. Specific, technical signals that tell them whether you can actually do the job and at what level.&lt;/p&gt;

&lt;p&gt;The first thing a technical hiring manager will often do is open your GitHub. Not to read every line of code, but to get a feel. Do you code outside of work? Are your projects just tutorials cloned from YouTube or do they solve real problems? Do your repos have clear READMEs? Is there recent activity or was the last commit two years ago?&lt;/p&gt;

&lt;p&gt;They'll also cross-reference your CV with LinkedIn and GitHub, not to catch the applicant lying necessarily, but because consistency between the two reduces uncertainty.&lt;/p&gt;

&lt;p&gt;Ultimately the most important question that the hiring manager asks themselves is: &lt;em&gt;"Is this applicant experienced enough for the job?"&lt;/em&gt; To answer that question they will look for seniority signals such as Ownership, Impact, Leadership, Production systems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;"I built a feature"&lt;/em&gt; versus &lt;em&gt;"I owned and shipped a product used by 10,000 users"&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;"I participated in code reviews"&lt;/em&gt; versus &lt;em&gt;"I established the team's code review process"&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The difference is not just wording, it genuinely reflects different levels of experience and responsibility.&lt;/p&gt;

&lt;p&gt;The hard truth is that a hiring manager has seen hundreds of CVs. They immediately know when someone is a level below what the role requires. And in a pool of 10–20 shortlisted candidates, &lt;strong&gt;"almost senior" always loses to "clearly senior".&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you pass the hiring manager's review, you get an interview. If you don't, you get silence or a polite template rejection email that tells you nothing.&lt;/p&gt;

&lt;p&gt;Congratulations! We just cracked open the blackbox of the hiring process — three layers, three different perspectives of whether you're suited for the job.&lt;/p&gt;

&lt;p&gt;You could be failing at any of those layers and have no clue of how far you've made it into the pipeline. That's what we're going to fix.&lt;/p&gt;




&lt;h2&gt;
  
  
  Part 2: The blind spots
&lt;/h2&gt;

&lt;h3&gt;
  
  
  2.1 — What you live versus what you show
&lt;/h3&gt;

&lt;p&gt;I'll make a bold guess: You're probably suited for the job. What stands in your way is literally between you and the job: ATS, HR, Manager and Interviews.&lt;/p&gt;

&lt;p&gt;What keeps you from landing the job is the gap between reality and what you show. Your application is a story, to you it seems obvious but to the HR and the Manager it's incredibly hard to understand your story just by reading your CV.&lt;/p&gt;

&lt;p&gt;Here is a classic example. You spent 6 months building a payment system that handled thousands of transactions a day, dealt with edge cases, worked with external APIs, and went to production without a single incident.&lt;/p&gt;

&lt;p&gt;Your CV says: &lt;em&gt;"Worked on backend payment features."&lt;/em&gt; &lt;strong&gt;That's the gap.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's why I want you to do this exercise: Open your CV, close your eyes for a few seconds and try putting yourself in another point of view, the next time you'll read your CV you'll know only what you read about the applicant, nothing more, nothing less. Once you're done reading ask yourself these questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is the applicant's journey clear?&lt;/li&gt;
&lt;li&gt;Is it clear what the applicant can and cannot do?&lt;/li&gt;
&lt;li&gt;Would I hire this applicant (yourself) solely based on what I read on this CV?&lt;/li&gt;
&lt;li&gt;If no, what in this CV makes me reluctant to hire this applicant?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is a hard exercise, mainly because you wrote this CV yourself, but think of this: You need to be the first to read your CV, not the hiring HR.&lt;/p&gt;

&lt;p&gt;Push this exercise further, make someone read your CV and answer all those questions, I'm sure at least a few (if not many) improvements will result from this exercise.&lt;/p&gt;




&lt;h3&gt;
  
  
  2.2 — Each job is a story
&lt;/h3&gt;

&lt;p&gt;Have you ever wondered what's a job? Personally I once treated a job as a way to get money, don't get me wrong it is that but the truth is that it's way more than that.&lt;/p&gt;

&lt;p&gt;Have you ever asked yourself: &lt;em&gt;"What issue is the company trying to solve by hiring someone?" "What profile are they looking for when writing the job description?" "Why this profile in particular?" "What do they expect from the hired applicant 6 months from now?" "1 year from now?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Two companies can post the exact same job title with the exact same required skills. One is a startup that just raised a Series A and needs someone to build fast and break things. The other is a scale-up that needs someone to stabilize a codebase that's been growing too fast. Same title. Same technologies. Completely different stories. Completely different ideal profiles.&lt;/p&gt;

&lt;p&gt;As said in 2.1 you have a story, but so does the job. It's about whether your story resonates with the job's story, so it's not about lying on your application, it's about telling your story in the same language as the job's.&lt;/p&gt;

&lt;p&gt;So the next time you're going to apply for a job, spend 10 minutes asking yourself those questions. Not to find the right answers, but to understand what story the job is telling. Then look at your CV and ask: does my story speak the same language?&lt;/p&gt;




&lt;h3&gt;
  
  
  2.3 — The seniority trap
&lt;/h3&gt;

&lt;p&gt;The seniority trap is not just about "you're applying for something too high", it's more subtle than that: it's that a lot of devs do not know what their actual level is. And their CVs are sending clear signals without them realizing.&lt;/p&gt;

&lt;p&gt;Developers who deem themselves mid are juniors, and seniors are mid. It's human.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Junior signals:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"I worked on"&lt;/li&gt;
&lt;li&gt;"I helped build"&lt;/li&gt;
&lt;li&gt;"I used React"&lt;/li&gt;
&lt;li&gt;Only side projects on GitHub&lt;/li&gt;
&lt;li&gt;No metrics&lt;/li&gt;
&lt;li&gt;Describe tasks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Senior signals:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"I owned and shipped"&lt;/li&gt;
&lt;li&gt;"I designed and led"&lt;/li&gt;
&lt;li&gt;"I architected the frontend"&lt;/li&gt;
&lt;li&gt;Projects that are live, with a real user base&lt;/li&gt;
&lt;li&gt;Describe impacts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Have you noticed the difference? It's the &lt;strong&gt;active/passive tone.&lt;/strong&gt; Whether you were an actor or director of operations, whether you led or were led, whether you had responsibilities or not. Just from the tone of your CV, LinkedIn and GitHub the Hiring Manager knows whether you're senior enough for the job or not.&lt;/p&gt;

&lt;p&gt;So how can an applicant know what their true level is? Same exercise — try reading your CV from another perspective, from what's written evaluate your seniority level. Also read the job description thoroughly, figure out what the responsibilities are. Does your CV fill those? Does your CV show experience in at least 90% of the job description's requirements?&lt;/p&gt;

&lt;p&gt;In those exercises you are bound to improve faster with outside help, even from a non-technical profile, just ask them to be honest and tell you what level they think you're at. The answer might surprise you.&lt;/p&gt;




&lt;h3&gt;
  
  
  2.4 — Your online presence is probably working against you
&lt;/h3&gt;

&lt;p&gt;Your CV is half the story, anything that is public is part of your application, whether you like it or not.&lt;/p&gt;

&lt;p&gt;Now that you're good at reading stories solely based on CVs, here's your final exercise which is way harder. Get good at reading people's stories — not just their CVs, everything. Give yourself 30 minutes per person, look up their CV, their GitHub, their LinkedIn, search them up on Google, do cross-referencing, try to mentally map out their timeline and ask yourself these questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"Is everything adding up?"&lt;/li&gt;
&lt;li&gt;"What are their strong points? Weak points?"&lt;/li&gt;
&lt;li&gt;"What is their level of seniority?"&lt;/li&gt;
&lt;li&gt;"Would I hire them?"&lt;/li&gt;
&lt;li&gt;If no, "Why is that?"&lt;/li&gt;
&lt;li&gt;If yes, "What is it that they do that I should do?"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Who should you analyze? Find developers on LinkedIn who have the job you want. Look at people who were recently hired for the exact role you're targeting. Their profile is proof that the hiring manager said yes — figure out why.&lt;/p&gt;

&lt;p&gt;Again outside help is useful but this time it is crucial that you do it yourself and thoroughly. Your application will improve at each iteration, even if it's little by little.&lt;/p&gt;




&lt;h2&gt;
  
  
  Part 3: The plan
&lt;/h2&gt;

&lt;p&gt;You cracked the blackbox. You identified your blind spots. Now it's time to set a plan, repeatable at each application.&lt;/p&gt;

&lt;p&gt;Start by identifying the real issue — it's not that devs lack skills, it's that they apply without a system. Each application should be an iteration, not a blind shot.&lt;/p&gt;

&lt;p&gt;The moment you start treating rejections as data points instead of failures, the whole game changes.&lt;/p&gt;

&lt;p&gt;You're not someone who got rejected 200 times. You're someone who ran 200 experiments. Some of them taught you that your CV was unclear. Some taught you that you were applying for the wrong level. Some taught you that your GitHub was sending the wrong signals. Each rejection, as painful as it is, &lt;strong&gt;is information.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The developers that land jobs are not necessarily the most talented ones. &lt;strong&gt;They're the ones that iterate the fastest.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here's the framework in three steps:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Before applying&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Audit your CV, GitHub, LinkedIn&lt;/li&gt;
&lt;li&gt;Do the Part 2 exercises&lt;/li&gt;
&lt;li&gt;"Is my story clear?"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. For the job&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Adapt your story to theirs&lt;/li&gt;
&lt;li&gt;Add the job description's keywords&lt;/li&gt;
&lt;li&gt;"Is my seniority level correct?"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. After each rejection&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It's not a failure, it's data&lt;/li&gt;
&lt;li&gt;"What probably made me fail?"&lt;/li&gt;
&lt;li&gt;"What do I need to change for the next application?"&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;I know how exhausting this process is. I lived it through 200+ rejections, doing all of this manually for every single application: reading the job description, cross-referencing my CV, checking keyword match, auditing my GitHub and LinkedIn. It's a lot.&lt;/p&gt;

&lt;p&gt;That's why I built &lt;a href="https://rejectcheck.com" rel="noopener noreferrer"&gt;RejectCheck&lt;/a&gt;. I wanted a tool that does this audit for you, before you apply, so you can focus on what actually matters: understanding the job and telling your story better.&lt;/p&gt;

&lt;p&gt;I built it for myself first. It worked. Now it's free to try.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Thanks for reading this far. I know it's a lot to take in.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If any of this resonated with you, or if you're currently in the middle of a job search and struggling, feel free to reach out. I've been there, I know how isolating it can feel, and I'm always happy to talk.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Good luck out there. You've got this!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>softwareengineering</category>
      <category>career</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
