Writing The Perfect Software Engineering Resume (It's Like a Google Search Result)


Table of Contents

I've recently been helping many friends edit their resume, when I realized a strange but interesting analogy.

Many people call your resume "your personal landing page"-- a sales page that is selling you as a candidate to the hiring company.

However, we get even more specific. In many ways, a good software engineer's resume is very much like a Google search results page. This may seem strange at first until you think about the various objectives of both.

The entire reason Google exists is to help you find better, more relevant information to the problem they're trying to solve. They do this by presenting the information in a clean, succinct, ordered manner.

Recruiters, and others who look through resumes, are looking for better, more relevant candidates for the roles they're trying to hire for.

In many ways, the way a Google search result page looks is almost like a perfectly defined representation of how best to minimize time reviewing information. It is the most efficient way to get the knowledge you need at any moment. Your resume should be like that. Don't believe me? Let's dig through some ways.

Pagination (Use a One Pager)

If you google "cat", Google is not going to immediately show you thousands and of sites and pictures of cats. Instead, it'll cleanly show you 10 results at a time because it knows that:

  1. You're limited on time, and...
  2. You're probably not getting much beyond the initial 10 results

In the same way, you want a single page resume. Unless you have 20 years or more of experience, you simply don't need to overwhelm the resume reader with information. They likely have hundreds of resumes to review and won't focus past the first page.

Having multiple pages just allows for the possibility of irrelevant (and often detrimental) information slipping into your resume. Any information after the first page will also have a very small chance of being read.

SEO Your Resume - (Use Keywords)

I'm still surprised that most people don't optimize their resume for search. Most companies use some form of an Applicant Tracking Software that will let them query or filter resumes for certain keywords-- think "Senior Javascript Engineer".

Use a site like https://www.jobscan.co to optimize your resume with the inclusion of keywords from job postings themselves. This way, you can ensure that you're highlighting things that the hiring manager actually cares about.

Another way to do is to go to the job description yourself, and make a list of buzzwords or uncommon words that you find. Then, weave them into your resume where they make sense.

Sort By Relevance (Ordering Matters)

This one is easy, but often missed. Your resume sections should be most relevant to least relevant, no exceptions.

What does this mean?

If you are a recent bootcamp grad, you likely don't have an education section that is very relevant to being a software engineer-- so put it at the bottom. However, you've just been coding at a bootcamp for the last 3 months, so you'll probably have tons of projects and code samples-- stick this as high up as possible!

Recruiters typically spend 6-10 seconds on your resume, and you can bet they're going from top-down. Use this to your advantage, and place the important stuff higher.

This also means that for large gaps in roles, you'll want to tailor your explanation to the role. If it was due to unemployment, list any open source or personal work done during that time period to demonstrate you continued to hone your skills.

Go As Niche As Possible

Usually the company, team, or recruiter has a very narrow need. You want to try to be as specific about your skillset as much as possible.

For example, it's not enough to say that "you know Ruby". There Ruby developers who can only use Rails scaffolding to build an app. Then there are those who can build Rails itself.

Summarize The Key Bits (Maximize Relevant Bits and Minimize Others)

If you look at the descriptions below search results, you'll notice that Google will bold words and keywords that are more relevant. Do the same with your bullets, both literally and figuratively. This is also why metrics are important-- they are a confirmation that you've done something useful. In other words, this:

  • Worked on React.js frontend with Canvas elements
  • Implemented filtering

can become:

  • Built and designed user interface in React.js with reusable components that expedited frontend development across team by 15% as measured by JIRA.
  • Developed scalable system of filters by implementing ElasticSearch integration.
  • Utilized Canvas elements across the page and taught workflow to junior engineers.

Formatting Matters (Minimalistic and Easy to Read)

The Google search results pages are very clean, minimalistic, and linear. Your resume should be the same way.

There's millions of templates out there so I won't go into too much detail. The most important thing is to keep it simple and ask yourself:

  1. Is this easy on the eyes or is it pretty-text heavy without a lot of clean divisions?
  2. Can this be skimmed well in about 10 seconds? If not, what's preventing it?
  3. Do I know what's important and what's not?
  4. Does this format help the person reading it understand my value proposition?

No Need For a Global Summary (Don't Have a Summary/Objective Section)

The vast majority of summary/objective sections are too similar to provide any additional value. They often sound generic:

"Mid-level software engineer with experience in this backend language and this frontend language, and this database. I have 5-25 years of experience. I'm passionate and I'm looking for a new challenge!"

All of that can be gleamed from the rest of your resume and simply takes up space that you could be using to express relevancy and why you're what they're looking for. You can demonstrate this in your job descriptions and the skills section.

The only exception to this is if it's hard to tell from your experience what your actual strengths are. You may have been hired in as a frontend guy but ended up working a lot on the database. Your last title was still "Frontend Engineer", but you are seeking more full-stack roles.

In this case, it makes sense to have a very brief objective section that uses the title you believe your skills are closest to: "I am a full-stack engineer with 2 years of in React.js and Django experience."

Notice how at the bottom, Google has a "Searches related to ____" section? This is to help people with recommendations on how they could format their queries a bit better. They can also just click to get even more specific.

A Skills section is similar. It's all about SEO-- you are maximizing the odds of an automated resume scanner or recruiter getting a match for the terms they were looking for. It's even better if you add proficiency or years. As mentioned before, "3+ years Angular and React experience on the growth team" is much more specific than "Javascript".

As opposed to an Objective section, a Skills section is a rapid-fire way for the person reading it to check off what they need. Again, it's all about making it easy for the person to select you. If your skills are that irrelevant, perhaps it's not a good fit, and you'd be better off looking for roles closer to your past experience.


Back