Top 5 job application mistakes in CS

Applying for jobs is one of my least favorite activities, especially as a college student. The process forces you to confront failure, go outside of your comfort zone, and reflect on your strengths and weaknesses. It is not easy. Having been through the process a few times now, I would like to share what I think are the five most common mistakes that computer science students make when applying for entry-level software engineering roles (e.g. internships, new-grade full-time roles) and how to avoid them.

#0: Underestimating the value of internships

Before I proceed with explaining the five most common mistakes in the job application process, I should first mention that some students make the mistake of not applying to jobs at all while in college (e.g. thinking that they will have time to apply for jobs after they graduate). They are underestimating the value of jobs, especially internships. The easiest way to secure your first full-time tech-related job after college is to convert a junior-year summer internship into a full-time return offer. Even if you do not receive a return offer from your internship, merely having an internship on your resume will automatically put you ahead of students who didn't do anything over their summers.

Some students decide to focus solely on schoolwork, believing that merely performing well academically will allow you to stand out in the job application process. In practice, companies favor practical experience in the industry over experience in the classroom, so students who don't even try to find an internship will find themselves falling behind in the recruitment process, even if they have a strong GPA from a school with good name recognition. Even if you graduate near the top of your class GPA-wise, if you don't have internships on your resume, then many companies will pass you up for another candidate that does.

#1: Not realizing the timeline / applying too late

It's a cliche, to be sure, but it is quite true: the early bird gets the worm. It's important to send in your applications early in the recruitment timeline; if you do so late in the game, you may find that some companies have already filled up their internship or full-time cohorts for the year. For this reason, a critical mistake that some students make is failing to realize how early the tech recruitment timeline actually starts.

Most companies first post their college job listings for next year's summer in August or September of the current year. For example, if you are looking for an internship in the summer of 2023, you can typically start applying in August 2022. (It's not unheard of for applications to go up even in July or earlier.) By September and October, many companies will already be starting to interview candidates, and by November and December, many candidates will already have offers. By January and February, many companies will start winding down their recruitment operations. In summary, the timeline is typically as follows.

  • August–September: job applications for next summer posted
  • September–October: coding challenges and interviews conducted
  • November–December: most offers sent out
  • January–February: most companies will wind down their recruitment

This is not a set-in-stone timeline, and you will definitely find companies that continue recruiting even through the spring, especially smaller companies like startups. However, definitely don't wait until the spring to start! The earlier you apply, the higher the chance of success.

#2: Bad resume format

In my view, the most consequential part of the job application process as an entry-level applicant is not the final interview, but rather the resume screen. Complaints about the job application process tend to follow a typical pattern: someone on the Internet will explain that they are having trouble receiving responses from companies on their applications, and the top comment in reply to the post will be a question asking for a resume, and when the person shares their resume, lo and behold, the resume is poorly formatted or otherwise has considerable room for improvement.

For college students looking for a tech-related role, here are some general tips:

  • One page only. Do not go for two or more pages on your resume. As a college student, you are not expected to have 10+ years of experience (you're often not expected to have any industry experience at all!), so a multi-page resume may backfire and give the impression that you have spread yourself thin.
  • Make it machine-readable. Some students are surprised to learn that the first person that decides which resumes move on and which resumes get rejected is not a person at all. Especially for entry-level software engineering positions, there are going to be hundreds, if not thousands, of students across the country applying for the same positions at the same companies. Recruiters simply don't have time to read through all of them, so they use software to filter out resumes that don't meet the qualifications they are looking for. To this end, it is helpful to include a lot of tech-related buzzwords in your resume, such as names of programming languages, phrases like "machine learning" or "full stack", as well as metrics like "15% reduced latency" or "50 monthly users".
  • Be detailed but succinct. This is related to "one page only". Go into detail on the most important and most relevant experiences for the role that you are applying, but don't go any further than that. Leave out things like high school stuff or experiences unrelated to technology (e.g. that time you worked in food-service or retail).
  • No prior job experience? List personal CS projects and have links to Github (or other code-sharing repositories). School projects are fine, but oftentimes you're not allowed to place your code in a public repository for school projects. Don't list out every single CS project you've ever done—pick one or two of the ones you're most proud of and could speak in-depth with an interviewer about.

There are a lot of resources out there that provide tips on how to write a resume—almost too many. I've found that there is a considerable amount of conflicting advice on the Internet regarding resumes. The best solution is finding a friend who has been through and succeeded at the recruiting process before and having them critique your resume.

#3: Insufficient amount of applications

Another mistake that students make is applying to maybe 20 different companies and thinking this is a lot. 20 applications is actually well below average. The reality is that there are well over a hundred companies across the United States looking to recruit software engineer interns or full-time new-grad software engineers. Starting in August, spend an hour sending applications to around ten new companies per day. If you cast a wide net, you increase your chances considerably.

Be more flexible about work location and company size: apply to roles across the country and not just to big tech companies, but also to companies in other sectors (e.g. finance, insurance, retail) and to mid-size companies and startups. I got my first internship in the summer after my sophomore year by walking into a career fair at my school specifically targeted at startups. Having the startup internship on my resume enabled me to get an internship at a larger company my junior year, which then enabled me to get a full-time role at a big tech company after graduation.

Another common mistake is deciding not to apply to a role because you think you're not qualified enough for it. Let them be the judge of that. You should always ignore the lists of "desired qualifications" for entry-level roles. Some of them are quite ridiculous, like asking for years of experience in programming languages for college students that probably just started diving into programming—I guarantee you that many of the people who eventually get offers probably didn't meet many of the "desired qualifications" listed. If the job application states that it is for an entry-level or new-grad role or internship, just apply. The worst case scenario is they reject you (see also #5 below).

#4: Not seeking referrals

Seek out referrals from people you know that already work at the companies you want to apply for. Seek out referrals before you submit an application directly to the company. Oftentimes, after your contact refers you internally, the company will reach out to you will a special link that allows to apply to the job via referral. Do not be shy about seeking referrals—most people will be happy to give referrals, especially because if you end up getting hired, they may be eligible to receive a bonus. Applying to a job via a referral increases your chance of success compared to applying directly through a job portal. This is also a good opportunity to seek out constructive criticism on your resume format: your referral contact may have some resume tips specifically relevant to the company they work at.

#5: Handling rejection poorly

The overwhelming majority of the companies you apply to will either reject you or "ghost" you (i.e. leave no response). It is so easy to think dark thoughts with every rejection letter. "Oh, I wasn't talented enough." "Oh, I wasn't smart enough." "Oh, I didn't try hard enough." "Oh, if I had just changed this one thing, I would have gotten it." "Oh, I didn't deserve that job anyway."

Stop. 

These thoughts just aren't true. There is no denying that the process is hard, and I have come to realize that there is a considerable amount of luck involved. Much of it is beyond your control, so it is critical to realize that rejections and ghostings are not an accurate reflection of your competency, your suitability for the role, or your work ethic. For a lot of companies, the interview process is harder than the job itself. During my hunt for a junior year internship, I applied to around 80 different places (which is on the low end, from what I hear!), heard back from around 20 of them, and of the ones I heard back from, only 8 gave me some kind of coding challenge, and of those only 5 gave me an interview, and out of those only 1 gave me an offer.

As a quote I once posted to this blog states: "It is impossible to live without failing at something, unless you live so cautiously that you might as well not have lived at all – in which case, you fail by default." Keep working. Keep persevering. Keep grinding. You do deserve this job. You are smart enough. You will succeed.