How to Tailor your Resume for a Software Engineering Internship
Make sure your resume passes both the ATS Software and the recruiter screen without any gimmicks!
For a long time, my response rate for software engineer internship applications was below 5%. It was frustrating to see “previous internship experience preferred” on applications that I knew I would never hear back from, and indeed Freshman and Sophomore year passed me by without so much as an interview opportunity.
I didn’t let these setbacks deter me, and instead focused on how I could build skills and experience sans a software engineering internship. By Junior year, I was a pretty competitive candidate judging by the companies that requested to interview me. I detailed how I transformed my resume to get noticed by tech companies here:
Then, my senior year recruiting season was marred by the Covid-19 Pandemic and economic uncertainty that made many companies like Google freeze hiring for new grads. I was worried about my own prospects, but in the end, I received a positive initial response (a coding test, recruiter screen, or first round interview) on over 30% of my applications. Specifically, that’s 27/85 action items following an application. And no, none of them were referrals. In fact, all 3 of my referred applications ended without an interview, so go figure.
Because I know everyone loves data, I went ahead and anonymized the spreadsheet I used to keep track of my applications senior year, ignoring the applications where I received a “no” or got ghosted. I applied only to competitive unicorns (think AirBnb), startups, top-tier tech (Microsoft, Facebook), and high speed trading companies (Citadel, IMC) since I already had a baseline return offer from Amazon. It was a busy fall semester for me.
More importantly, I’m human. I failed many coding challenges and technical interviews (and passed many more), but my thoughts on how to put your best foot forward during a technical screen is left for another day. Some of the dead ends in my application were also because I started declining opportunities once I got a few offers or because I got a surprising email saying that the company was done hiring already. It is still a numbers game, and a brutal one at that.
In all, I received 6 offers for software engineering internships junior year, and 4 offers for full-time jobs senior year. Both recruiting seasons, I landed at Amazon, but I wont dwell on my reasoning for where I want to start my career here (stay tuned for a different article).
Why My Experience Matters
I have two thoughts about why you should listen to my advice. First, I’ve been a regular interviewer for an online computer science academy called Juni Learning, where I’ve vetted 100+ college-aged candidates. Not many of my peers have seen the other side of the recruiting pipeline as I have.
Second, I’m not some dinosaur with archaic views on what a resume is supposed to achieve, and believe me, I’ve met my share of those in the wild. I’ve walked the walk alongside you, and did so recently. I know how confusing and contradictory the “resume tips” articles are out there and how they seem to be written by a middle-age blogger for a generic audience rather than specific to software engineering. I want nothing more than to provide what I’ve learned in a digestible manner for you.
The Dreaded Applicant Tracking System
Nowadays, almost all companies use some form of automatic Applicant Tracking System to vet candidates before recruiters see them. It’s important to know what the ATS software is, and to make sure that your resume is being parsed cleanly. I’ve written about this before, so if you want know how to beat the ATS software, take a look at this article:
Building a Stellar Resume
Because I know the information is out there already, I’m going to try to avoid the general resume advice that you should already be following. Very quickly, the items I’m glossing over are things like focusing on your deliverables and statistics when possible, no typos (nothing is worse than typos!), reusable format for all sections, etc. Rather, I’d like to focus my thoughts on what works for a resume tailored for software engineering.
Stop Playing Around with the Margins
Start by making sure your resume is single-line spaced, the margins aren’t larger than normal, there are no orphaned words alone on a single line, and there are no short bullet points that end up wasting the entire line.
You should remove anything else you did to stretch your experience into a full page. This is, I’m assuming, a bombshell to some. What I’m referencing are common tactics for people with less experience to extend their body of work into a full page. Don’t worry, I utilized these tactics too on many of my earlier versions and I cringe when I think of it now.
There’s nothing worse than a resume that looks sparse, and trust me when I say it is incredibly obvious to see through the margin/spacing games that we all inevitably try to play. I would argue that the same material with extra space at the bottom would look at the very least more honest.
“Okay, so I did that and now my resume has a few lines of empty space at the bottom — surely that’s not great either right?”
It’s not optimal, but think of your newfound real estate as an opportunity to populate your resume with more CS experience. Start a personal project (as simple as building your one-page, personal website) or join a CS club at school. These additions will be an immediate positive impact on your resume, and the best thing is that you can add it in as a pre-emptive step to commit yourself to that task.
Rewrite Each Bullet Point into a Glamorous Fact
Next, go through your qualifications line-by-line and if it sounds awkward or reeks of BS, rewrite it into something better. My controversial advice here is that you can fudge things within reason, which is both needed and expected. As long as you can talk the talk when prompted in an interview, you will be fine. I’m not saying you should add in a phantom job experience, by the way, because that’s amoral and you will get caught during a background check. I’m saying it’s perfectly fine to say you had dozens of users on your tic-tac-toe app when it was really 24 people and mostly friends and family. That’s dozens.
Okay, obviously if you have some impressive numbers don’t sell yourself short too. An exact number like 563 is better than 500+ or “hundreds.”
More General Advice for Those Who Want It
- No photos, no colors, no two-columns, no weird stuff that might mess with the ATS that is automatically “reading” your resume. Your resume should be simple anyway, because anything extra means you’re trying to compensate for a deficiency.
- Trash the “objective” or blurb you have at the top of your resume (if you have it). It’s tacky, taking up the most coveted real estate on your resume, and saying you are a “motivated and hard-working CS student looking for a SWE internship” isn’t going to convince anyone to hire you.
- In general, the sections you want to have are Education, Experience, Projects, and Leadership/Interests/Awards/Misc. (you can name the last section whatever is appropriate to your accomplishments). If you have legit software engineering internships, put Experience first, otherwise, put Education. More on the Projects section later, since it is a software engineering specific.
- Your Education section should include Relevant Coursework. It doesn’t need to be overkill, i.e., don’t put every course you’ve taken ever. Data Structures is an important course to highlight, especially early in your college years. I would argue that any CS or Math class is relevant to software engineering, because they show how analytically savvy you are. Anything else is fluff. If you double major in comparative literature, your English classes probably don’t belong on your software engineering resume.
- Updating your resume is a continuous activity in your college days. At the very least, every semester you should revisit your resume with a new, higher-level CS course to add to your Relevant Coursework along with whatever other accomplishments you’ve made in the past few months.
- Of course, you should also have as many people as possible look over your resume and give critical feedback. Start with friends and family, but really focus on anyone a few years older than you that are successful in software engineering. If you can find my email, I’d be happy to take a look too.
Software Engineering Specifics
Now I’ll get into what I believe are necessities for software engineer internship resumes, which only those with experience in this arena are going to know. I didn’t get this knowledge from my parents, the career center, or my friends, since none of them knew what a good resume for software engineering looks like.
On the topic of career center folks, the first time I visited my school’s career center for resume help, I was told that starting with “Dishwasher at College Dining Hall” was excellent because it showed that I was responsible.
While that may be true, highlighting that experience only solidified the idea that I had no experience in CS whatsoever. I would have been far better off putting my Education with Coursework first, because at least I would start off with relevant classes and a decent GPA.
I got zero responses with that rendition of my resume, and I quickly learned that non CS folks are likely no help for the software engineer internship grind.
Basics for every Software Engineering Resume
“Taking space to talk about non CS things actively shows recruiters that you don’t have enough CS experience.”
- You need to have 2–3 projects (no matter how bad) on your resume and GitHub especially if you haven’t landed your first internship yet. There’s really no excuse, because it’s not like someone is stopping you. So build something simple in Python if you have to.
- You must have a GitHub to link to with a few projects. No link to a GitHub (or similar site) is an immediate disqualifier for competitive internships. Make sure the README of those projects are built out too. While we’re at it, make sure you’re committing something now and then to maintain your presence on the page.
- You want all your computer science related information at the top of your resume and everything else on the bottom. Let’s face it, anything non CS is just fluff to add to your resume. I was a summer camp counselor my freshman year, and that was important to me, but over time, I slowly moved it down my resume until I removed it altogether. My thought is that it really didn’t show how strong I was at computer science. The corollary to that statement is that taking space to talk about non CS things actively shows recruiters that you don’t have enough CS experience.
Say Bye to the Things you Love (that aren’t CS related)
Basically, the more CS related things to add, the better. That means that the software engineering club that you don’t do much in is going to look better than the volunteer book club that you lead (it’s not college applications anymore, volunteering matters far less).
On my resume, which you can probably find on my website, the top 80% is dedicated to computer science. The only items that make the cut in the bottom 20% are my captaincy for the Ultimate Frisbee team and my potpourri of interests (and believe me, my life doesn’t revolve around CS so there are some heartbreaking things I had to cut). Obviously it didn’t start out this way when I had less experience, but my goal was always to fill out software engineering relevant experience as much as I could starting from the top.
The Most Important Tip of the Day
“I’ve been told multiple times by recruiters and technical interviewers that they really appreciate this method of conveying my skills.”
And finally, for the tip I think is most important of all, remove the list of languages and technology that you’ve used. Yep, maybe 95% of all CS resumes I’ve seen have this section, and at one point, mine did too.
Unless you’re a software engineering whiz, in which case you probably don’t need my advice, you’re not going to have many years of experience, or really be all that experienced altogether. You probably have 1 year of Java under your belt that you fudge as 2 years (or something similar). Or, you claim to be proficient at Java on the heels of one Data Structures class. Yeah, right. No one is “proficient” or an “expert” at this stage, and recruiters know you’re lying if you claim to be. So how can you effectively gauge how much experience you have in one area?
Honesty is the best policy. I’m not saying you should put “beginner” or “learning” — red flags in their own right. Simply remove your own take on your expertise level and let the recruiter make their own judgement. Instead, put your technology stack and languages next to your experience.
It can look something like this:
Projects
CryptoNight Code Words Game: www.cryptonight.codes
(JavaScript, Bootstrap, Node.js, Express, Socket.io, MongoDB, AWS)
* Built online multiplayer word game similar to Codenames...
I’ve been told multiple times by recruiters and technical interviewers that they really appreciate this method of conveying my skills. It’s far more effective than saying I have 2 months of JavaScript experience (because that sounds bad even though I coded every day) but it’s a lie to say I’m “proficient.” The truth is that I used JavaScript for this project, so you can judge my JavaScript skills by how advanced this project looks.
Your Relevant Coursework section can have this information too:
Education
Williams College, B.A. in Computer Science
Coursework: Programming Languages (Lisp, Scala, C++), Software Methods (Swift), Applied Algorithms (C), Data Structures (Java)
Quick Things to add to your Resume (if needed)
If you’ve purged the non-relevant items from your resume, chances are you might be in need of some ideas to add to it too. It’s not hard to beef up your Computer Science resume even if you aren’t crazy skilled yet. Take a look at my thoughts on that here:
Thanks for reading! You can write a great software engineer internship resume regardless of your experience. May you have the best of luck in your software engineer internship search.