Landing the Software Internship (Part 1: Resumes)

Computer science classes don't teach you how to find internships. We cover the steps to get an internship, starting with how to prepare a resume.

Landing the Software Internship (Part 1: Resumes)

During college, the professors knew how to teach well. But when it came to college internships, I had to figure things out alone. My peers had similar sentiments as well. Our education system leaves students clueless when it comes to finding a job.

Unfortunately, in the real world, it doesn't matter how good of a student you are. Nobody's going to spoon feed you a future. If you don't put yourself out there, you can't expect a fruitful career.

There are three components of getting an internship that most students don't learn. I view all three as fundamental pieces of knowledge. Every student should understand them before graduating.

  1. Building resumes
  2. Job Hunting
  3. Interviewing

Each piece deserves its own room for discussion, so this will be a 3-part blog post. In this part, we'll explore how to write a resume. The ensuing parts of this blog post covers finding jobs and interviews, respectively.

How to Think About Resumes

So you think you write a little about yourself and hand the paper to a recruiter, right? Sounds simple enough. Then, I'm guessing you pray that someone gets back to you. If that's how you think, you're setting yourself up for disappointment.

The resume isn't a dumping ground for information about yourself. Nor will checking certain boxes guarantee anything. The resume is a tool to sell yourself. Its purpose is to convince busy recruiters that you are worth their time. Anything else wastes space and lowers your odds of success.

The Life of a Resume

You might be wondering what happens to your resume the second it leaves your hands. Either way, knowing the truth puts things into perspective.

After you hand over your resume (or submit a digital copy online), your piece of paper joins a large stack of papers. Other gracious job applicants contributed their sheets of paper to build that stack. The stack of paper lies dormant until a recruiter chooses to look through the resumes.

When does a recruiter look over resumes? It depends on the context. Some companies wait for a critical mass of applications. Others examine on a rolling basis, so they will periodically sort through the stack. A company in urgent need of candidates may work faster, and referrals may be able to skip the line as well. It never hurts to ask your recruiter.

Once recruiters sort through resumes, it's the first layer of a filtering process. There's a large stack of papers, so they have to skim through each resume before making a decision. Each resume gets around 3-5 seconds of attention. During this moment, the recruiter determines whether you're worth an interview. The desirable candidates continue down the pipeline. Everything else gets rejected. In a sense, it resembles swiping through Tinder while sitting on the toilet.

Therefore, the recruiter must be able to understand the resume within a few seconds. Optimize for clarity. If the recruiter can't see why you're relevant after a quick skim of your resume, it's game over. It doesn't matter how good you are; the recruiter has moved on.

Adjusting your Mindset

People like to think about themselves. Candidates stress over how they can get a job. Recruiters stress over how to find competent candidates. Thinking along those lines will hold you back. If you only think about what employers can do for you, consider the following: why would a company want to hire you?

If you persuade employers that they want you, the dynamic flips. You're no longer searching for a job; someone is trying to hire you. Try to frame your resume as a persuasive writing piece. After all, the resume's mission is to persuade a recruiter.

Now you might ask what the resume should persuade a reader about. I like to think about what a company would want when hiring people. In general terms, the resume should convince a reader of 3 things:

  • You are competent.
  • You are a relevant fit to the company.
  • You can add value to the company.

Everything on your resume should contribute to at least one of these items. Your resume is not a biography. There's no need to include irrelevant details about your experience. Nobody's going read through your entire resume. So you need to get the point across without forcing someone to read carefully. Good writing matters in this situation. We explore the tactics of writing a resume next.

How to Write Resumes

There's a hierarchy of needs when it comes to writing resumes. When you get started, you need a readable resume. Anything is better than nothing. Once you have something to build upon, cutting out the fluff comes next. The final step lands once you transform the resume into a piece of persuasive writing.

We divide the stages into roughly three sections:

  1. Basic resume mechanics 🛠️
  2. Writing well ✏️
  3. Persuading the reader 🔮

I recommend students to tackle each section in order. However, it's good keep all three stages in mind when writing.

Proper Mechanics that You Should Know 🛠️

When writing a resume, it can be hard enough knowing where to start. Underclassmen encounter this problem the most. These mechanics may be obvious for most readers, but I don't want to take anything for granted. Feel free to skip this section if you're happy with the format of your resume.

Fit everything into 1 page

If your resume is longer than a page, it likely has too much fluff. Reduce the length. Nobody has the time to read resumes longer than a page. Additionally, hard copy resumes that are longer than one page are difficult to handle. If you're unsure about what to cut out, bias towards what's most relevant and recent. People care about what you've accomplished lately. People also care about what you can do for them.

Resumes should be PDFs

Be sure to convert your resume to a PDF before printing or sharing digital copies. PDFs avoid rendering issues since it's a standardized format. You're not doing yourself any favors if a recruiter looks at a resume with weird margins. It's fine to write your resume in Microsoft Word or any other tool of your choice. Just be sure to export anything you want public to PDF.

You don't have to include your GPA

Students should share their education details on their resumes. Including the school, major, and any special programs works well. You don't need to write a paragraph about any of these. Sharing your GPA is optional.

If you have straight A's in class, sharing your GPA gives you a competitive advantage. Show it off. If you're not proud of your GPA, there's nothing wrong with omitting it. No recruiter who is busy scanning resumes will stop at yours and question why there's no GPA.

Consider omitting your GPA if it's below 3.5 (on a scale of 4). At that value, it may weaken your resume. If you're not happy with your GPA, don't bury your head under the sand. Invest in improving your grades into something you can be proud of. A low GPA does not mean academics are a lost cause.

Read your own resume

A clean resume beats a detailed resume. Your top priority is to make sure the resume is easy to skim. Remember what I said about recruiters only spending 3-5 seconds?

There's a simple test to judge whether your resume is well-formatted. It's called reading your own resume. Can you understand your own resume if you skimmed it for a few seconds? Does anything catch your eyes? Ideally, you'll want 2-3 main selling points to be immediately visible to readers. Have friends and family read over your resume as well. If they don't get the point within 5 seconds of skimming, you need to clean things up.

You now might be wondering how your writing can catch a reader's eye. If your writing is clear, it shouldn't be a problem. Unfortunately, not all of us are Shakespeare. Consider bolding key points or phrases if you think your writing isn't getting the job done. Exercise caution around too much bolding or fancy formatting. I'd recommend at most 3 short bolded phrases, but use your own judgment when writing.

Use a template

If you've decided to declare resume bankruptcy or don't have a resume, it may be daunting to get started. My recommendation is to find a template online. Don't reinvent the wheel.

Find the cleanest template online or the one that's the easiest to read and copy it. Using the same templates as your friends is fine too. A good template fits into one page without problems. You also want headers and sections for education, work experience, other skills. If the template meets all these criteria, you only need to change the content. That's the fastest way to get your own working resume.

Avoid colorful or gimmicky templates. It's tempting to think it'll help you stand out from the crowd, but recruiters look for real substance. Graphical templates may backfire, since they tend to be harder to understand. Prioritize readability. A good tip is to think about how easily a computer program could parse your resume. Something that's easy to parse is easy to skim.

Writing Techniques for the Resume ✏️

General writing principles carry over when writing resumes. You want to be clear. Keep the resume brief. A long resume distracts recruiters. A resume that doesn't get to the point fails to show why you're worth interviewing.

Cut the fluff

Cut out the fluff from your resume before changing anything else. You may need to remove entire sections. The general rule of thumb is to remove anything that's not relevant to the job you seek. If you're looking for a coding gig, talking about your job walking dogs might not prove much. When listing skills, apply the same criteria. Knowing Visual Studio code isn't a real skill. Being a "quick learner" isn't a real skill either.

Skills Worth Listing "Skills" to Avoid
Specific tools
(e.g. IDA Pro, Figma, Sketch)
Text editors or IDES
(e.g. Eclipse, Vim, Emacs)
Programming languages
(e.g. Java, Python, Go)
Subjective traits
(e.g. teamwork, leadership, communication)
Non-trivial libraries and frameworks
(e.g. React, GraphQL, PostgreSQL)
Operating systems
(e.g. Linux, Windows, MacOS)
Job-specific qualifications
(e.g CISSP, TS-SCI clearance)
Tools that you aren't actually good at
(e.g. Excel, Photoshop, Wordpress)

After pruning, you may end up with a resume that's shorter than you'd like. It's fine. You're not the audience. As long as it's easier for the recruiter to find relevant experience, it's a good change.

Get to the point

Writing mechanics benefit resumes as well. Make your writing clear. Use active voice when describing your experience. Avoid adverbs. Rewrite sentences if necessary. It's tempting to make word salad in order to make your experience "sound better." It doesn't work. You'll either confuse the reader or trigger the reader's bullshit detector. Fluffing up your sentences always backfires.

Turning the Resume into Persuasive Writing 🔮

Your resume has good writing quality and relevant experience. Good job! Your work isn't done quite yet. Resumes still fail if they don't persuade the recruiter that you're a good candidate. Proper framing of your experience can make all the difference.

Don't summarize the job role

The most common writing mistake happens when students write about their job experience. All they talk about are their responsibilities or the company itself. Nobody cares what the company is up to. Everybody cares about what you accomplished on the job.

Take a look at an excerpt from an example resume below. While it seems fine on the surface, can you tell what the candidate has done?

At Google, I was part of the authentication team, where we deal with logging in users and handling two-factor authentication. My responsibilities included coding two-factor authentication experiments in Java for the login page.

Another common mistake students make is listing down a "prestigious" role. They assume the title itself will impress a recruiter. If you don't share what you actually did in that role, a reader won't know how you actually provided value.

I was captain of the Cybersecurity Competition Team. The team competed in the CCDC and MDC3 cybersecurity competitions and got past the qualifiers.

Notice how the example above doesn't describe what the team captain actually did. The job title and competitions all sound fancy, but there's no substance. It's only name dropping. For all I know, a nice teacher gave you a fancy title to boost your ego.

Show results

A job description on a resume should make it clear what you did during the job and why your work added value. Providing context is important, but it's easy to fall down the rabbit hole of sharing too much context. I like to use a simple litmus test when reading resumes. For each sentence, I ask two questions:

  1. Does this sentence describe what work the candidate delivered?
  2. Does this sentence share the impact that came from the candidate's work?

If a sentence fails to meet either criteria, it probably doesn't belong on the resume. Write your resume such that each sentence answers one of the two questions above.

Let's rewrite the resume excerpt from above. Notice how implication of the candidate's work becomes clear. You don't need to write poetry. Just get to the point.

At Google, I experimented with two-factor authentication messages shown to users during login. I implemented the new text and did data analysis for three of these experiments. The experiments raised the sign-in success rate of users by 10%.

When we revise the second excerpt, notice how it becomes clear what the candidate did. We even cut out the part about participating in the competitions themselves. Again, there's nothing clever going on here.

I was captain of the Cybersecurity Competition Team. During the semester, I organized weekly practice meetings among 15 students. Additionally, I assigned projects to learn various security tools, such as Nmap and Wireshark.

But I'm a "nice guy"

Avoid subjective qualifications when describing yourself. It's easy to say that you're creative or good at teamwork or a nice person, but it's hard to back it up with actual evidence. Don't put yourself in such a situation. It broadcasts that you lack substance and are compensating for it. Even worse, these traits don't evince whether you're capable of producing results.

You might have seen those colorful resumes where candidates rate their own skills. For each skill, there's a gauge or rating out of 5 stars (or something else along those lines). Don't do that. As a person who screens resumes and interviews candidates, I can assure you that those don't work. If you rate yourself as an "expert" in Java, how do I know you don't suffer from the Dunning-Kruger effect? If you rely on gimmicks in your resume, ask whether you're compensating for a lack of substance.

Yes, please tell me more about how good you are at HTML5.

A template for writing resume sentences

With all these constraints, it may feel overwhelming to write a resume. That's understandable, so don't worry too much. I like to use a template when writing about experiences on my resume. You may want to do the same.

Within a job experience, each project or accomplishment gets its own bullet point. For each bullet point, I use at most three sentences.

  1. The first sentences shares critical context about the project. This should be the shortest sentence and can be optional.
  2. Then I describe the objective output I produced.
  3. For the last sentence, I talk about the impact of my work. Use a statistic here if possible.

Generally having some metrics yields the best results. A metric gives you a quantifiable impact to show off. Claiming to have impact without a metric to back it up makes it difficult to prove that you added value.

If you don't have any metrics to share, it's not the end of the world. Instead, try to take your best estimate or talk about the implications of your work. It's a weaker message since you can't quantify anything, but it's better than nothing. As a note, be sure to measure your outcomes in future jobs. Besides being good ammunition for your resume, it helps you know your market value.

What if I don't have any relevant experience?

A dilemma among underclassmen is that they don't have relevant experience. By not having a job, it's harder to get a job. So what do you put on a resume when you don't have previous internships?

If you want to bootstrap your resume, I have two possible suggestions:

  • Do research with a professor.
  • Attend hackathons.

A professor's job comprises more than teaching. Most of them do research as their main job. Luckily for you, professors are always hungry for new sources of unpaid labor. If you're looking for research opportunities, talk to your favorite professors. Ask about what they're working on. If something looks like a mutual fit, consider spending a semester working with them. Research is quite nice because it's an easy opportunity to get practical experience. The research itself tends to be an interesting topic for discussion as well.

Your school likely has its own hackathon. My school has held Bitcamp for over 7 years.

If you want hands-on coding experience in a short time frame, consider going to a hackathon. (Describing a hackathon is outside the scope of this blog post, but I trust in your Googling abilities.) If you do an interesting project during the hackathon, it's worth sharing on your resume. For your first hackathon, try to team up with some veterans. That way you don't go in blind and waste your time. In general, I would prefer trying out research first. Hackathons carry the risk where you may not yield a resume-worthy project.

What's Next?

So you've gone online and fetched a resume template. You filled it with relevant experience and details about how impactful your work was. Congratulations! You've completed the first step of pursuing an internship.

What comes next is finding relevant companies and getting past the interviews. Unfortunately, you don't learn about those in school. I will discuss these topics in subsequent blog posts. But for now, having a solid resume puts you ahead of the crowd. Happy writing!