For those of you who are starting out on your software engineering job search, and have questions about how to prepare a great resume that can get your foot in the door, then this article is for you.
This article is a collection of advice and tips I compiled together with Kristin Simmons, a senior technical recruiter at Twitter. I worked with her during my recruiting process, and she's been an absolute blast to work with.
What this article is about:
- Do's in a resume
- Don'ts in a resume
- Extra tips
- Advice for new graduates
- Tools/resources I recommend
- Read more about my courses here to learn how I prepared.
- Read here for my experience and learnings after a year at Twitter.
What this is about
I recall distinctly the day I had to write my resume, and I absolutely blanked out. I had no idea where to start. I wasn't sure if hobbies should be included, or if my experience as a retail assistant was relevant. In other words, I was lost when it came to writing a resume.
As it turns out, resume writing is both an art and a science, and it can be very daunting to write one.
To be clear, I'm not an experienced recruiter‚??-‚??I have no idea what a recruiter looks for when screening resumes.
I wanted to share my thoughts on how I learned to prepare my own resume, and I then sought out help from Kristin who could help me fill in areas where I couldn't.
The following is a condensed form of our collective wisdom.
Do's in a resume
A resume should be short, concise, and easy to read.
- Be consistent. Use consistent font (Arial/Times New Roman are OK) and no more than three font sizes for readability
- Use sections (use four major ones: Work Experience, Education, Skills, Projects)
- Use keywords in your resume, and be accurate. Recruiters do look for keywords in resumes (e.g. Java, Python, Hadoop, real-time are some examples of keywords).
- Social media accounts are OK to list if it's relevant. GitHub is popular for hosting software, so that's OK to list. Snapchat, not so much.
- Explain why you are suitable for the position. You can write a cover letter as an add-on, or a brief summary at the top of your resume. These give recruiters a stronger signal of who are you and why you want to apply.
- Use numbers. If you helped a website scale, don't just write it verbatim‚??-‚??put a metric in there. "I helped the website scale from 10K views/day to 100K views/day."
- Use an active voice. Use verbs like "designed," "implemented," "executed," "drove," and "planned."
- Use PDF. Any other file format, like .docx, might cause your resume to render differently.
- Pick two to three projects you know really well. You should know these from top to bottom, front to back. Knowing two to three projects really well shows dedication and ability to ship things, two desirable traits any company needs.
Consider the following resume:
This resume is written in a .docx and it's extremely difficult to get the formatting correct. You're leaving it up to chance, hoping that the recruiter somehow has a Microsoft Word app installed and is able to read it properly.
Just save it as PDF. It'll save you a lot of trouble.
A short resume goes a long way. The reason for this is that a recruiter, especially at a top-tier company, receives hundreds, if not thousands, of resumes per day. Imagine if they spend 1 minute per day on a resume, and they go through 300 resumes a day. That's 300 minutes or five hours of work per day, 25 hours per week.
Having short, concise resume ties into the adage that resumes should be kept to a single page. This is a guideline and not the rule. If you're a college-fresh graduate with not a lot of experience under your belt, then stick to this rule of thumb.
Don'ts in a resume
Do not assume that your resume is a reverse chronological ledger of everything you've done in the past. In other words, curate your resume with a very critical eye.
- Do not list all the positions you've held since high school. A retail position you held in high school over summer would not be of much interest to a tech company.
- Do not quantify your skill level. Put technologies you've worked with, and skip out on labeling them as "Good," "Expert," and so on.
- Do not list every single buzzword you've heard of. Some examples include "big data," "real-time," "machine learning," "docker," and "batch streaming." Use them with care. You'll probably be asked to demonstrate your knowledge of these technologies during the interview.
- Do not go in-depth without explaining how it's relevant. Most candidates have done something cool, but they fail to make recruiters see how it's relevant.
- do not list irrelevant skills. Microsoft Excel, Word, and so on are basic computer skills most people know, so you can leave those out.
This section will focus on minor things that I personally think are helpful to know. It helped me set the right tone and mindset when I was writing my resume.
Craft a story
A resume is a story‚??-‚??your story. Imagine you're taking someone on a story-telling journey, and the story is about yourself.
Recruiters/hiring managers want to know are you smart in the field you're in, and do you have potential for growth. Anything in your resume that signals you're smart should be in there.
Use a resume as a canvas to put your best foot forward. What are some highlights, challenges, obstacles in your professional life, and how do these make you a good candidate? A resume should attempt to answer these questions.
Likewise, patents, publications, or inventions that are relevant to the position are great things to have on a resume, too.
In most cases, if you can make a case for why a patent is relevant to your application, then feel free to include it in your resume. Think of it as extra-curricular activities‚??-‚??it shows passion, grit, and dedication outside of your regular realm of work.
Optimize for readability
I think this is crucial to understand. A resume is not a regurgitation of what you have done, but rather a thoughtful and well-curated list of your journey.
Be highly selective of what you choose to include, and what not to include. Each bullet point should provide a hint, or a signal, to the recruiter of who you are, and why you are a good fit.
A good mental exercise I have is if I only have 60 seconds to pitch someone on why they should hire me, what would the pitch look like?
I then work backward from there and expand on the things I've done in order to drive home my pitch.
An example would be:
"I'm a backend software engineer who is highly driven and well-versed in RESTful architecture. I built highly scalable web apps that scaled to millions of users and drove the product vision for my company."
The points I want to drive home here are:
- backend engineer
- RESTful architecture
- product visionary
I would then curate my resume to center around those four pillars. What are some of the things I've done in the past that show my passion in the product, my skills as a backend engineer, my design experience around RESTful architecture, and what metrics I can show to demonstrate the products are scalable?
Advice for new graduates
For fresh graduates and people who are switching from a non-tech career, this is the section you should pay attention to.
Does brand matter? Yes, it does. The school you go to and the company you interned with are important factors.
Some companies tend to recruit heavily from certain schools‚??-‚??the usual suspects, such as Stanford, MIT, and University of Washington, come to mind here‚??-‚??and if you go to one of these top Computer Science schools, then you have an upper hand over other applicants already.
However, all hope's not lost even if you don't attend a prestigious school. A good name brand serves as a signal, yet there are various other signals that are important as well.
For one, if you didn't go to Stanford and you haven't had much of an experience in a tech company, Kristin suggests providing details around how your current experience translates into a good fit with the tech company you're applying for.
More often than not, she sees candidates write in detail about how they've worked hard in a retail position during summer, and the values they've brought about as a result of their work. However, the candidates fail to tell the recruiter anything about their ability to flourish in a tech company.
A tech company is very different from a retail position‚??-‚??I'll leave this topic for another day. A recruiter, and a hiring manager wants you to convince them why you'll fit in and why they should hire you.
A good candidate will write in detail about their retail experience, and also tie that into something that is relevant to the position they're applying for.
In case you're thinking you don't have a chance because you've never worked with technology, don't despair. Your experience isn't the sole determination of whether or not you qualify. Your hobbies or interests can be useful signals as well.
If you've enjoyed tinkering with electronics, soldered things together, or in essence demonstrated proficiency in dealing with complicated technologies, then, by all means, put them on your resume.
At the end of the day, the recruiter wants to see how your background is relevant to the position. Everyone is distinctly different from one another, and each person brings a different set of skills to the table.
Show the recruiter what you're capable of. Use those 60 seconds appropriately, and give them a reason to think, "hey, this person might be a good fit."
Once you get your foot in the door, use that opportunity to get your dream job. To read more about how to prepare for an interview, I wrote an article about how I prepared for my job interviews and finally landed my dream job at Twitter.
Tools I Recommend
- Cracking the Coding Interview‚??-‚??a great starter book on coding in general, and some resume writing tips in there. I used this to prepare my first draft of my resume.
- The Google Resume‚??-‚??great starter book, for new grads in particular. Talks about majors/minors to pick, how to write resumes, and sort of a step-by-step guide for getting the dream job.
- Elements of Programming Interviews: Great for more difficult coding problems
- OneNote: I use this to store all code snippets
- Evernote: For everything else
- Refdash: Run by a bunch of ex-Googlers. The quality of mock interviews here is. The interviewers are ex-Googlers. I highly recommend trying them out.
- CodePath: A non-profit org that helps people prepare for a career in tech. Nathan and Tim are great people and I have learned a lot from them. The community is very helpful and everyone is willing to give a hand.
- Fine-point markers: Bring these to your interview. I highly recommend them!