~/blog/anatomy-of-good-resume
Published on

Anatomy of a Good Resume

2903 words15 min readI don't track
Views
Authors

Anatomy of a Good Resume

Frustrated Job Applicants

What qualifies as a Good Resume? Is it the one with flashy designs and fancy titles? Or is it something else? What can I change in my resume to improve my odds of getting an interview? Is it ATS-friendly?

Like all of you, I've asked myself these questions during both desperate times and when I saw the "Job of my dreams". It took me several years and half a million iterations to learn and unlearn quite a bit. It wouldn't have been possible if it were for the blog posts by others and the countless times hiring managers from various companies provided valuable feedback. So here is what I learned over the years on what we can do to build a good resume.

Before we begin

Make sure to subscribe to my newsletter: Homelab Heroes! It's free!

Quick Disclaimer

These insights are based on my experience applying for jobs in the security domain. While these tips are generally applicable to most IT jobs, their effectiveness cannot be guaranteed for other domains due to potential format and requirement differences. However, the general approach to writing and structuring the resume should remain the same.

The Template

Choosing the correct template for the job is crucial for a good resume. It can be compelling to select the most fancy-looking template. But the fact of the matter is, it will hurt your chances.

Why?

Let's put ourselves in the shoes of the recruiter and hiring manager for the role. They have a bunch of applications to look through. Let's say 50 to 100 resumes. They can only afford to spare a few seconds, if not a minute or two, to skim through each application. Having a fancy resume makes it harder to go through the resume. There could be other factors as well! Have you ever considered that a hiring manager or recruiter is colour-blind?

So ask yourself. Is it worth screwing up your odds just for a fancy-looking resume? A simple and inclusive resume can go a long way to help increase your odds.

Hmmm... Ok. Then what should the template be like?

Single-column design with no fancy colours or design elements. It should be at most 2 pages long. This is what you should aim for.

A single-column design should used for mainly two reasons. For one, it makes it easier for the ATS (application tracking systems) to parse your resume and fill out the forms on the application site for you. At the very least, most of the forms fields. Remember the site that asks you to fill out forms when you already have all those details in your resume? Yeah, that one. While the ATS might not play much of a role in your current selection, it could help the recruiter identify potential candidates for future roles. Yup, that's what an ATS does. It doesn't screen your resume! There is no bot to bypass or fool.

The second reason is the human factor. It is easier to skim through the resume when each point is one below the other.

People hate nothing more than trying to identify how to read through a resume quickly because of a fancy design. So, do yourself a favour and use a simple format. I'm not saying you should use a format that looks like a plane pizza. You can have small fancy icons and line breakers to make it visually appealing while you make it easier to skim through.

I would suggest using a service like Novoresume. It helps eliminate choosing between templates and fumbling with the formatting throughout the resume.

Structuring the resume

Name

At the very top comes your name and other details. Include your full name on the top if it fits. Or you could go with your preferred name to make it easier to format. There isn't much else to do here.

Title

Below your name, add your current job title. For example, it could be something like a Senior Security Consultant. Clear and Concise. That is the target.

If you were unlucky like I was before and had a job title that is quite misleading, then you can add the correct job title here. No one really bothers what your "official title" is on your resume as long as it makes sense. For my first job, my designation was a "Software Engineer". Ironically, what I did had nothing to do with software engineering. I was a server administrator. Would it have made sense to add the title Software Engineer to the resume in that situation? Absolutely not! Go with the correct title. It helps.

Summary

This section is optional. Let's be honest here. No one cares about a generic summary. It's a waste of space. Everyone knows that we are applying to get a job and do the work right and to do yada yada yada. Unless you have a specific summary you can share, skip this section.

If you want to include the summary in your resume, write something specific. Here is an example from my resume:

My clients describe me as a collaborative worker with clear communication skills who can tackle tough challenges, even in new domains. As a result, they entrust me with increasingly complex tasks.

For most of my career, I never included a summary. I included a summary in my latest version because I had a good reference point. The summary you saw above is from two pieces of feedback the clients I worked with provided in the past. I wanted to call out those keywords and phrases: collaborative, clear communication, tackling tough challenges in the new domain, and entrusting with complex tasks.

You can include a summary. Just don't make it generic. Look back at your achievements, great feedback from clients and what else. Pick the characteristics highlighted over and over again. Now, prepare a concise summary.

It is OK to use ChatGPT, Gemini and Grammarly to come up with the summary and to reword it for us. It's a fair game. I'm going to ask you to use these tools throughout this article.

While I can't show you how to create better outputs using prompt engineering in this article, I suggest that you should aim to revise the output from these services several times, if required, to get better outputs.

This section is one that many get wrong. In this section, we include links and other contact information.

Here are a list of things you should include:

  • Contact email: Have a professional-looking email. Try avoiding that weird email address you created as a teenager.
  • Phone Number: Include country code and maybe add a space between every 3-4 digits to increase readability.
  • Portfolio Site: This can come in handy if you have one. Format: domainname.TLD. For example, ninostephen.me.
  • Github: If you have contributions you can showcase, include a link to your profile page. Use this format: github.com/<your username>. Like your email, avoid using cringe or offensive usernames for your profile. Update the username from the settings page.
  • Linkedin Profile: This is optional. If you include it, note that recruiters will look through the profile. When you link your LinkedIn profile, make sure of two things. For one, fix your LinkedIn username. You can change it from the LinkedIn settings. Have a consistent username across the various sites. General Format: linkedin.com/in/ninostephen. The format might be a bit different depending on your physical location. And make sure to keep your LinkedIn sections up to date. Also, make sure you at least have something valuable in your profile. That's why it's crucial to keep your various LinkedIn sections up-to-date.

Things you shouldn't include:

  • Link to Twitter and other social media accounts: Let's be honest, we aren't mindful of what we post, like or who we follow. In an ideal situation, avoid linking these profiles and maybe even keep them private while you apply for jobs. It's not uncommon to get kicked out for a not-so-well-thought-out post someone made years ago.
  • Your marital status.
  • Your family history.
  • Your physical home address.
  • Your passport number or any other PII.

Work Experience

Work Experience is the next most important section in the lot if you have a working professional experience or an internship under your belt. Hence, it must be just below the contact info section.

When adding your work experiences, the one on the top should be your latest work experience, followed by other work experiences in reverse chronological order.

Structure of the work experience

Here is the format you can follow:

  • Job Title (e.g., Senior Software Engineer)
  • Employer Name (e.g. Google)
  • Date of Joining (MM/YYYY) - Date of Resignation (MM/YYYY) or "Present" (e.g., 11/2020 - Present)
  • 4 to 5 (at most 6) points related to your work experience written using the Problem-Action-Result Format.

Problem-Action-Result (PAR) Format

The best way to show others you know what you are talking about is to show how you solved a problem at work and what you helped the company achieve.

As the name of the format suggests, each work experience point should highlight the following:

  1. The Problem the company faced.
  2. The action you took and
  3. The quantifiable result the company gained from it.

Let's look at an example:

Reduced average server and service setup time by 30% by creating a playbook for recurring requests, enabling on-time delivery within resource constraints, happier clients, and increased request capacity.

Problem/Aim: Reduce Server and service setup time.
Action: Created a playbook for recurring request
Result: Reduced setup time by 30% (a quantifiable value), on-time delivery, happy customers and increased request capacity.

I assume you got the point. There are a few more things to check here:

  1. Always start a point using an action verb that reflects your contribution (e.g., Created, Executed, Reducted, Implemented).
  2. Not all actions can be quantifiable. It could be because of the action taken, but the fruits of the labour are yet to arrive.
  3. When you quantify the results, don't use unrealistic values. While the value only plays a minor role, it should be reasonable and realistic. The whole idea is to show that you know how the business benefits from your contributions.
  4. Like everything, it should be concise. You don't have to present all of PAR in a single sentence. Break it down into two sentences. If breaking a sentence helps bring clarity, do it. It is the same with rewording the sentences. There might be a better way to word a sentence.

For the love of god, please do not include client names or other confidential details anywhere in your resume.

You can use any of the free LLMs for this task. Check the score on Grammarly.

I should warn you that LLMs like Google Gemini and OpenAI Chatgpt will create generic sentences, use overly complex vocabulary and structure sentences in a way no human would write. So be mindful about it. It's up to you to fix it when it inevitably happens.

Also, I generally include fewer points (3-4) from my previous jobs when compared to my current job (4-6). It does not make sense to include those extra details for previous work experiences if those points do not add more value to the prospective jobs you are looking at.

SKILLS, TOOLS AND LANGUAGES

I'm a bit split on this section. On one side, it makes it easier to include those keywords the recruiter and hiring manager look up while highlighting skills not mentioned in the experience section. But, on the other end, this section doesn't convey specific details on how much you know something.

With that said, I have included this section in my resume and maybe you should too!

The main factor about this section is the formatting. How you list your skills and tools in this section can easily make or break the usefulness of the section. The following is the structure I follow.

Skill Group - Skill 1 (Specifics: Optional) / Skill 2 / Skill 3 (Specifics: Optional) / ...

Here are a few examples:

Infrastructure Administration - Linux Server Administration (Debian, Ubuntu, CentOS) / Virtualization & Containerization (VirtualBox, LXC/LXD, Docker) / Scripting & Automation (Python, Bash) / Kubernetes Administration / Incident Response / Networking / Server and Service Troubleshooting / Homelabbing

Programming - Golang / Python / Shell Scripting (Bash) / Git & GitHub (Version Control) / Custom Tool Development (CLI)

Soft Skills - Ideation, Design Thinking & Problem Solving (Brainstorming, Mind Mapping) / Effective Communication / Client Relationship Building / Report Writing / Technical Documentation (Playbooks, Design Specification) / Knowledge Base Management

As you can see from the examples, I've categorized each skill into various groups and included all relevant skills under those sections. It makes it possible to highlight the type of skill you want to present in that category. Adding specifics helps clarify what you have in mind when you include a particular skill. For example, it makes sense only when I mention the specific Linux Derivatives I know along with Linux Administration because there are differences in how things are in different distros.

Certifications

Certifications are the only section where I used a double-column format to save space. It didn't make much sense to use valuable space when there was so little on each row.

The format I went with includes a Title highlighting the certification I received (e.g., RedHat Certified Engineer) and a shortened link to that certificate. I use Bitly to shorten URLs since using long links sucks. Also, people are sceptical about clicking links. They would prefer copying the shortened links over clicking a hyperlink in the context of a resume.

The link part is optional. It is just a nice-to-have.

Stop including participation certificates in this section. It does not add value!

This section should showcase your skill in a particular area or tool. So, only include certifications in order of highest value. Include certifications if they add value to your profile.

Personal Projects

I love the Personal Projects section quite a lot. It allows me to present the fun side I couldn't otherwise showcase in a job application. Personal projects are a great way to show how much we enjoy something and highlight our creative side if it's related to the job.

The included projects must either be specific to the jobs you are applying for or show transferrable skills.

The Project section follows the same format as the Work Experience section. Use the PAR format to create the points. It is permissible to be a bit more casual. Maybe an example will make it more clear.

Homelab Heroes (homelabhero.beehiiv.com)
------------------------------------
Homelab Heroes Project documents my exploration of practical homelab projects designed to solve real-world problems and enhance my technical skills. This platform serves as a playground for experimentation, learning, and sharing insights gained through hands-on experience.

I implemented a Pi-hole to block ads and trackers for a faster and more private browsing experience.

Created a shell script to periodically sync files from my machine to a custom NAS on my home network, ensuring they are safe and backed up.

Used GNU Stow to create version-controlled dotfiles for easy and fast setup and recovery of my Linux machine configurations.

I created some scripts for personal use to improve my quality of life. An example is the CF-DDNS program (details mentioned below).

As you can see from the example, the format is pretty similar to the Work Experience section. The difference is in the tone of the points. It's a bit more casual. Also, I included links to the site. I have other personal projects hosted on GitHub. As I did for the example, each project has a name, the URL to the GitHub repo and points in PAR format with a casual tone.

If you have a sophisticated project, include those. I would say that you include your top 3 or 4 projects depending on the sophistication. It's perfectly ok to include smaller projects. But, it is the more sophisticated projects that are going to showcase how much you know.

Professional Development

The professional development section is also known as the upskilling section. Here, we highlight the additional skills and tools you acquired along the way that could be relevant to the new job. This section can be simplified to a clear title and a brief explanation of the task and key learnings.

Here is an example:

Golang Programming Language
---------------------------
I utilized Go's efficient log file parsing capabilities to cross-check Indicators of Compromise (IoC) against various threat intelligence sources such as VirusTotal.

Using Go's capabilities, I developed three efficient CLI tools: tokentango, cf-ddns, and munge. These projects leveraged Go's simple structure and concurrency, resulting in notable improvements in application speed and scalability.

Professional development is one of those more casual sections. As long as we can show how we implemented something we learned, we can include that skill in this section. You don't have to overdo it. 2-3 skills should be enough.

Education

Education is an optional section. If you have two or more years of work experience, it makes little sense to include it. If you want to include it, include the following details:

  1. University Name
  2. Degree
  3. Graduation Year

Education is yet another nice-to-have section and is not mandatory unless you are applying for a position in an academic institution.

Attestation and Reference section

Don't. Just don't. No one cares about the attestations. It is just another waste of space. Remember, we only have two pages to spare. It's the same with references. If a company needs one, they will request it separately once you clear the interview. You don't need it during the application process.