All posts

Show, don't tell: Effective resumes for engineers

Putting your best foot forward when applying for a job

Sashko Stubailo, 2021-01-19

Photo of someone diagramming on a sheet of paper

Photo by Green Chameleon on Unsplash

In my 5 years of being a hiring manager, I’ve reviewed thousands of resumes ranging from senior engineers to new college/bootcamp graduates. In that time, I’ve noticed that many great candidates don’t present their experience in the most impactful way. In this post I’ll go over what I look for in a technical resume, and what makes resumes more or less effective.

The main advice comes down to this: show, don’t tell. Prove that you have the skills for the job by showing what you’ve done.

What’s a resume for?

Put yourself in the shoes of a hiring manager trying to find someone great to join their team. A resume is the main document they look at to decide who to interview. Most job posts get a lot of applicants and interviews take a lot of time, so it’s important to focus on interviewing only the most promising candidates.

Unfortunately, the reader can only spend a minute or two for a first look. If the initial glance looks promising, they’ll spend a few more minutes looking at supporting materials. So it’s to your advantage to make the strongest, most concise case you can about your fit for the role.

Focus on your relevant experience

When reading a resume, I’m looking for concrete evidence that this candidate will do well at the role. That comes down to two things:

  1. Does this candidate have the technical skills and experience needed? This doesn’t mean they’ve necessarily worked with the specific technologies we use, but that they could learn our stack quickly.
  2. Is this candidate good at getting work done and collaborating with a team? Just having technical skills isn’t enough.

The key comes back to “show, don’t tell”. Anyone can write that they’re a JavaScript expert or that they’re a great teammate — I’m looking for specific examples.

This is why previous professional experience or equivalent project work should make up the majority of the resume if possible. Don’t just put what role you held, but explain what you accomplished and why it was interesting. For example, this doesn’t tell me much:

Software Engineer II at SoftwareCo
Participated in engineering sprints and collaborated with teammates to ship features quickly with a high quality implementation. Worked across the stack with a JavaScript frontend and a Ruby backend.

This is much more informative, and takes up the same amount of space:

Software Engineer II, Photos team at SoftwareCo
Led team of 3 engineers to rewrite photo uploader to use a streaming API to reduce upload time by 37%, increasing number of photos uploaded per user by 15%. Led user research and technical scoping.

Writing about work in this way also shows me that you understand the impact of what you worked on, beyond implementing pre-specified features. Focus on specifics, numbers, and results as much as possible.

Don’t be too humble

During interviews I usually dig in to the projects a candidate listed on their resume. More often than not, it turns out it was way more impressive than what they wrote down!

When you’re working as part of a team, it’s good to give other people credit and sometimes downplay your achievements. But when you’re applying for a job, the hiring manager simply won’t know what you did unless you tell them. If you led a project, don’t just say you worked on it. If you came up with an idea or made a key decision, highlight it. Put your best foot forward.

Effectively highlight project work

If your resume leans heavily on projects done in a more academic or independent setting, it’s a little trickier to follow the advice above. My suggestion is to find projects that have real users, or produce a real-world result. For example, you could build an app for your friends to post progress on their knitting projects, plan out complex architecture projects in The Sims, or create art that you post on an Instagram account. Nick DeJesus suggests taking things to the next level:

One thing Resilient Coders does is make the students find paying clients. Great way to both 1. Get paid 2. Build a portfolio. — Nick DeJesus (@Dayhaysoos) on Twitter, January 18, 2021

Building a project with a tangible result beyond personal learning can be a very rewarding experience, and has two benefits for your resume:

  1. It shows that your project works end-to-end.
  2. It shows you can launch code to production and handle all that involves — error handling, deployment, getting feedback from users, etc. This can act as a stand-in for job experience to some extent.

If you highlight personal projects, make sure to talk about what they do and why, not just the technologies you used — that’ll help make them feel more real.

Listing non-tech experience

I’ve often interviewed folks who switched from a different career into software development. If you don’t have enough tech work experience yet to fill out a resume, don’t skip over your non-tech experience. These roles might not show off the engineering skills you’ve learned, but they show that you’re an effective team member and know how to get things done.

Prioritization, length, and what not to put

For resume length, I’d recommend one page for every 10 years of experience. It’s hard to fit everything on one or two pages, but it’s an opportunity to focus on your absolute greatest hits. You can get into the details during the interviews if needed.

If you need to make more space, I’d suggest coming back to the idea of “show, don’t tell”. Slim down your “skills” section and talk more about your experience. Focus on the projects and roles that had the most impact.

I’d suggest leaving out large visual ornamentation — I’d pretty much always prefer more content, or a larger font to make things easier to read.

Supporting materials

While it’s good to keep your actual resume short and sweet, you can add more pizazz by linking to supporting materials. This can be a portfolio site, GitHub account, a site or app you worked on, or anything else. Note that this isn’t required, and a resume can absolutely stand on its own. However, an exciting project or demo can really add to an application.

If you do link to supporting materials, make sure they are useful. It’s discouraging to click on someone’s personal website link and see that the site is down, or click on a GitHub link and see that there are no repositories. If there isn’t anything to look at, just leave it out.

If you are linking to some repositories on GitHub, I’d suggest taking some time to polish them up. All your featured repos should have a README that explains what’s interesting about the project. You can also include a personal README to guide readers through your profile.

Get feedback and a proofread from someone

It might be tempting to see a resume as a personal thing that’s embarrassing to share. But it’s such an important document — try to get someone to read it over first! At the very least, ask someone you trust to look for typos or other mistakes. If you know someone that has experience hiring for tech roles, ask them what they think.

A well-put-together resume could really help you get that first interview. I hope this post was helpful! If you have any other questions or thoughts, please reach out to me at @stubailo on Twitter.

Thanks @janhoogeveen for providing feedback about this post!

© Sashko Stubailo 2021