September 28, 2023

tutorial interviewing

If you’ve been preparing for technical interviews, you’ve probably been brushing up on data structures and algorithms, grinding Leetcode problems, and practicing interviewing with your friends, pets, and houseplants. And those are all very important!

But that assumes you’ve already got a technical interview lined up. Before you get to that point, you’ve got to get your foot in the door and make a first impression.

And that usually begins with sending somebody your resume.

Do Resumes Really Matter?

Resumes are used in a few different ways, depending on the size of the company.

In smaller companies, your resume follows you through every step of the interview process. It might even be physically printed and literally stack-ranked against other resumes.

In larger companies, your resume is mainly used to catch the attention of a recruiter, and might even be scanned by an algorithm that searches for candidates. I’ve heard some people say that a resume’s only job is to get past the automated screening process, but I wouldn’t go that far. Even in a large company, your resume is shared with everybody who interviews you. And although your interviewers will focus more on the interview than on your resume, anything on your resume is fair game during the interview!

What’s Your Story?

Before you worry about the specifics of formatting, or what content to include or leave out, ask yourself a question: what’s my story?

I mean it. Really ask yourself the question, and take a minute to answer it. I’ll wait.

(…this is me waiting…)

At its core, your resume has one primary goal: to tell your story to the reader.

Here are some example stories that you might want to tell:

  • I’m a junior engineer who’s eager to learn new skills
  • I’d like to gain more experience in a particular topic
  • I want to bring my open-source experience to a job in the industry
  • I have a history of working with XYZ, and I’m excited to contribute to a particular type of project
  • I’m interested in this specific topic, and I’d like to continue learning by working with it and attending grad school

My personal resume story goes something like this:

I’ve always been interested in education, and for most of my career that meant juggling my day job as a software engineer with various forms of teaching on the side. I recently moved more officially into education, both as the Curriculum Lead for an internal education program at Google, and as an adjunct professor at Millersville University. I also just relocated from Silicon Valley to Eugene Oregon, and I’m looking for a role that’s a mix of coding, education, creativity, and making the world a better place.

No matter what your story is, everything on your resume should help tell that story. Most of the rest of my advice falls pretty naturally from that.

What’s the Company’s Story?

Of course, a more complete story about me would involve a bunch of other stuff: I love concerts, and breweries, and hiking, and taking pictures of animals and bugs. But that stuff probably won’t get me a job. (Recruiters, please tell me I’m wrong!)

So the story I tell about myself is catered and specific to the company I’m applying to. In other words, I have a different resume for every company I apply to!

Try to learn as much as you can about the company before you apply. What do they value? What positions are they hiring for? What kind of work do they focus on, and what do they need the most? What’s their mission statement?

Here are a few examples:

  • Google: Our mission is to organize the world’s information and make it universally accessible and useful.
  • Amazon: Amazon is guided by four principles: customer obsession rather than competitor focus, passion for invention, commitment to operational excellence, and long-term thinking. Amazon strives to be Earth’s most customer-centric company, Earth’s best employer, and Earth’s safest place to work.
  • Meta: Giving people the power to build community and bring the world closer together

You can get some of this information from the company’s website, or by talking to a recruiter, or by researching on websites like Glass Door.

This might seem a little contrived, but understanding the company helps you market yourself, to tell your story in a way that resonates with the people looking at your resume. Each of those people is asking the same kinds of questions: Should I recommend hiring this person? Will they help me achieve my goals? Will they help the company achieve its goals? Would they be interesting to work with?

Your resume is your first chance to answer those questions.

What to (Not) Include

Okay, so now you’ve thought about your story, and the company’s story. It’s time to put together your resume. What should you include?

In addition to telling your story, your resume mainly answers one question: Can you do the job?

With that in mind, here are a few things to include:

  • Relevant experience, including internships and open-source contributions. Anything that proves you can do the work should absolutely go on your resume.
  • Relevant education, including any classes or bootcamps you’ve done on the side. Highlight any upper-level electives that help you stand out, like ML or robotics.
  • Personal projects, especially if they’re related to the company or position you’re applying to. This might include larger school projects.
  • Examples of you mentoring or teaching others. This includes tutoring, helping run weekend events, or leading relevant clubs.
  • Links to portfolio webpages and projects. But make sure they still work!

On the other hand, here are a few things to leave out:

  • Every job you’ve ever had. If you’re applying to a software engineering position, your high school summer job working at the mall probably doesn’t help you much.
  • Too much personal detail. A very brief mention of something that makes you unique can be a nice touch, but you don’t need to mention that you like listening to music, watching movies, and hanging out with friends.
  • Discriminatory information. There are a few things that American companies legally can’t ask you about, including religion, health, disability, age, marital status, and race. In some countries it’s normal to include a picture of yourself with your resume, but in America, let your resume speak for itself.
  • Spelling errors. Ask somebody to proofread your resume before you send it out.

Your resume’s main job is to prove that you can do the work. On the other hand, your resume also answers a second question: would you be interesting to work with? For answering that question, a little goes a long way. Look for small ways to include your personality, but don’t distract from the main goal of proving that you can do the work.

Resumes are Multi-Objective Optimization Problems

Multi-objective optimization is a problem where you’re trying to find the best option that satisfies many different criteria. And because many people look at your resume, you aren’t designing it for just one person. You’re designing it for everyone, which is hard because different people care about different things!

Here are a couple types of person that might read your resume, and the kinds of questions they’re asking:

  • Recruiters. Does this person have skills that match the job description we’re hiring for?
  • Technical Interviewers. Does this person have relevant technical experience?
  • Hiring Managers. Would this person be a good fit with the rest of the team?
  • Potential Peers. Would this person be interesting to work with?

You only get one resume, but you have to appeal to each layer of the process. And the frustrating part is, sometimes what works for one layer backfires in another!

For example, you could list every single programming language you’ve ever used, even languages you used for a single homework assignment and then immediately forgot. And honestly, that probably makes your resume more likely to catch the attention of a recruiter. But that might backfire later in the process, when a technical interviewer starts grilling you on the language, and you have to admit you don’t really remember it.


Unless you’re especially talented in graphic design, you shouldn’t be formatting your own resume. Use a template from Google Docs or Microsoft Word, and fill in the blanks.

Export your resume as a PDF, because different computers render other formats in unpredictable ways. For example, if you give me a Microsoft Word .docx document, and I open it in Google Docs, some of the spacing and formatting might be off. But a PDF looks the same pretty much everywhere.

I personally recommend keeping your resume to 1 or 2 pages, and filling each page instead of leaving a ton of whitespace at the bottom of the page. This comes down to personal preference, but a resume that’s 1.5 pages feels “less complete” than a resume that’s exactly 1 full page. I also try to put page boundaries between sections instead of splitting a section with a page break right in the middle, but I admit that might just be a me thing.

My Resume

If it helps, you can check out my resume at


Happy Coding is a community of folks just like you learning about coding.
Do you have a comment or question? Post it here!

Comments are powered by the Happy Coding forum. This page has a corresponding forum post, and replies to that post show up as comments here. Click the button above to go to the forum to post a comment!