by Terrence Kuo
How to write a killer Software Engineering résumé
An in-depth analysis of the résumé that got me interviews at Google, Facebook, Amazon, Microsoft, Apple, and more.
This résumé got me interviews at Google, Facebook, Amazon, Microsoft, and Apple.
I obtained these interviews by sending my résumé to the résumé black hole, also known as applying online.
Applying online is the most common way people go about applying for a job and therefore the least effective way to land an interview due to competition. Yet that is exactly how I obtained all my interviews.
How did I accomplish this?
In this article, I will go through a line-by-line analysis of my résumé for the following purposes:
- explaining the choices that I made in creating my résumé
- why I believe this résumé worked to help me land those interviews, and
- how you can create an even better résumé!
I decided to write this article because I struggled a lot with landing interviews when I first started looking for a job. It would have been extremely helpful for me to have a real-life example résumé to look at.
This article is organized into the following sections:
- The All Too Familiar Way of Not Landing an Interview - a short anecdote of my frustrations when I first started applying for jobs
- Evaluating the Options: Moving Forward - a reflection on different strategies to improve the odds of landing interviews
- Learning How to Write a Killer Résumé By Example - the step-by-step analysis of my résumé with each of the following sections corresponding to my résumé:
- The Essentials from a Glance
- Who Are You
- Contact Information
- Personal Projects
The All Too Familiar Way of Not Landing an Interview
You probably know the link that every company provides for online applications. It’s the classic career site that shows you a bunch of job titles which you think you are totally qualified for until you open the job description and read the minimum requirements.
A job description with a bunch of words that you have never heard of, may have heard of, or hoped you had heard of. And it has an innocent-looking “Apply” button.
Despite the uncertainty you may feel about your qualifications, you apply anyway because you want a job.
So you fill out the application form, press submit — and wait and hope for a positive response.
Your results will be varied:
- Phone Interview 🎉 (yay, a chance at employment!!!)
- Immediate Rejection 😢 (darn, back to the drawing board)
- No reply 😞 (gosh, at least give me the courtesy of having some closure)
Repeat Until Success… Right?
Sadly, this is the typical process that many people go through when looking for a job/internship.
Apply to a couple of companies. Get a couple of rejections or no replies. Apply to a couple more companies. Get a couple more rejections or no replies. Over, and over, and over again.
Why do we do this to ourselves? We spend all this time doing the same repetitive task to obtain the same, disappointing results.
Because this is what everyone does to get an interview, right? Because at least we’re working towards the right direction and have a glimmer of hope, right? How else are you supposed to get an interview?
Evaluating the Options: Moving Forward
“Discouragement and failure are two of the surest stepping stones to success.”
- Dale Carnegie, (author of “How to Win Friends and Influence People”)
We can think of approaching the problem of not getting interviews in two ways:
- Putting your application/ résumé under the microscope
- Questioning the process in which you go about obtaining an interview
This article focuses on the former, because no matter what avenue you end up taking to get an interview, essentially every company utilizes your résumé as a basis for evaluation. Therefore, we will examine my résumé under a microscope and focus on learning how to write a remarkable résumé.
Getting an interview via online application is extremely challenging because your résumé has to pass numerous stages before it gets into the hands of the hiring manager.
It has to bypass online keyword filters, stand out to a recruiter who reviews it for about 6 seconds and meet the expectations of the hiring manager who decides whether you are worth interviewing.
Yet, despite all those hurdles, I obtained all my interviews by applying online. How? Trial and error. I’ve applied to hundreds of different software engineering positions since my sophomore year of college.
When I first started applying, I faced a staggering number of rejections, but over time I learned how to adapt. By the time I was a senior, I was extremely successful in landing interviews from almost every company I applied to.
The résumé that landed me all those interviews is the exact one in this article.
It took me four years of iteration and real-life testing to get to this point. From this experience, I have come up with a list of résumé writing principles to help you write an even better software résumé. These are principles that have helped me land my dream job and are principles that can help you land yours.
While it took me four years of college to figure this all out, you don’t have to go through all the leaps and bounds because you can learn all of it right here, right now.
My goal is to be the one-stop hub for all your questions on how to obtain a software engineering interview. That way, you don’t have to waste countless hours cross-referencing Google search results to find the best answer on how to write a software engineering résumé that gets interviews.
Your valuable time could be better spent on writing your killer résumé.
So start here and now with this article. Reap the benefits from my past experiences and let’s begin the step-by-step walkthrough of my résumé!
Learning How to Write a Killer Résumé — By Example
“As to methods there may be a million and then some, but principles are few. The man who grasps principles can successfully select his own methods. The man who tries methods, ignoring principles, is sure to have trouble.”
- Ralph Waldo Emerson
Let’s take another look at this résumé:
The Essentials from a Glance
Recruiters do not have all day to read your résumé. On average they view it for less than 6 seconds. Keep it short and concise.
Sections (Header, Education, Employment, Software Projects, Skills)
Place sections in order of importance from top to bottom. The ‘Personal Projects’ section is a unique, must-have for people looking for a software engineering position.
Consistent layout + font per section
Make sure each section contains a uniform look. Consistent style is important as it enhances the readability. Readability is essential.
So why does this résumé work? Let’s explore the numbered bullet points.
Who Are You (1)
Target Audience: Anyone writing a résumé
Starting off real easy. Your name. Place your name at the top of your résumé in a large legible font.
No need to be all fancy about it with extravagant colors or fancy fonts. Plain and simple does the trick. You want the recruiter to see this easily from a mile away because you want them to know who you are. A recruiter who has to do minimum work is a happy recruiter. A happy recruiter is one who is more likely to give you an interview.
Recap: Make it ridiculously easy for the recruiter to read and find your name.
Contact Information (2)
Target Audience: Anyone writing a résumé
Your contact info should be as easy as identifying your name. This is so important. Of all the things in the world, please do not mess this one up because how else on earth will the recruiter contact you?
Recap: Put in the correct contact information or you’ll never be contacted.
Target Audience: Anyone writing a résumé with a degree
If you are attending or attended college, this should be the first section of your résumé, because going to college is a huge accomplishment. According to the U.S. Bureau of Labor Statistics, only “66.7 percent of 2017 high school graduates age 16 to 24 enrolled in colleges or universities”. So be proud of it and include it!
Right off the bat, this tells the recruiter that you are invested in education and learning, which is crucial because technology is continuously changing. Furthermore, this information serves as an indicator of your successes, so be sure to put it down.
Recap: Put down where you got educated.
Be sure to include relevant coursework corresponding to the position that you are applying for. While a course on the History of Italian Gastronomy sounds exceptionally appetizing, it doesn’t have a place in a résumé that is trying to get you a job in computer science.
This will significantly improve the ability of the recruiter and the hiring manager looking at your résumé in deciding whether you are a good fit for the position. And as previously mentioned, a happy recruiter is more likely to give you an interview.
Recap: Only include relevant coursework.
Okay. GPA. Before we talk about this, let’s remind ourselves of the main purpose of a résumé.
The main purpose of a résumé is to highlight your knowledge, skills, and accomplishments succinctly. You want to include things on your résumé that you are proud of, but also things that will impress. You want to paint a picture of yourself in the best light possible so that recruiters and hiring managers want to interview you.
Now back to your GPA. It should be fairly obvious whether or not your GPA is impressive. If your GPA is below a 3.0, don’t put it on your résumé. There’s nothing wrong with excluding your GPA from your résumé if it only harms your chances.
If you have a GPA between 3.0–3.2, this is a judgment call. From personal experience, I have talked to some companies that require a minimum GPA of 3.2, but these were primarily financial or quantitative companies. Most software companies have little regard for your GPA. If you have anything above a 3.2, I would place it on your résumé.
If you have a low GPA, fear not, as this gives you the opportunity to be creative! My overall GPA was a 3.2 due to poor grades from my freshman engineering prerequisites and humanities classes. But once I finished and started taking courses within my major, my in-major GPA (GPA calculated from courses in my major) was a 3.44, which was significantly higher. So that’s what I put down (but make sure to qualify it as a departmental GPA).
There are many ways of going about presenting yourself in the best light possible, even when it may seem like the odds are stacked against you. I only provided one example of accomplishing this, but there are many more ways waiting to be discovered by you. Fully embrace your failures and accomplishments because they make up who are you. Be honest and truthful, and always focus on highlighting the best parts about yourself.
Recap: Your GPA does not define you. The purpose of your résumé is to present yourself in the best light. Never forget that! Be creative when going about this and DON’T LIE.
Target Audience: Students with software engineering work experience
If you are a college student without any experience, don’t be afraid! This was my senior year résumé when I was applying for a full-time job. I was fortunate enough to have accumulated relevant work experience from summer internships, but this isn’t absolutely necessary to get an interview. If you find that you don’t have much to put in section, jump down to the ‘Personal Projects’ section.
While it is great to have past work experience, not all work experience is treated equally when it comes to looking for a job in software engineering. Focus only on including work experience that has relevance to the job that you are applying for. For instance, if you have experience working as a cashier in retail or a waiter in the food industry, don’t include it! Unfortunately, your abilities to handle money or serve food did not provide any indication that you will succeed as a software engineer.
A recruiter’s goal is to match candidates with jobs that fit the candidates’ skill sets. Therefore it is essential only to include past work experience that has some relation to the position that you are currently applying to, on your résumé.
Part of accomplishing this means creating a collection of various résumés, each tailored specifically for the different job that you are interested in. This is analogous to the college application process, where you had to write separate essays for each university that you applied to. Each college has its own values, culture, and vision, making it nearly impossible to write a generic, one-size-fits-all college essay. Therefore, tailor your résumé to the job that you are applying for.
Lastly, a note on dates. Order your experiences in descending order starting with your most recent experiences. For undergraduates, this means being mindful of including experiences that are both recent and relevant. Sadly, no one cares about whatever accomplishments you had in middle school or high school. If the experience is outdated, leave it out.
Recap: Have various versions of your résumé tailored for each job you are applying for. There is no one-size-fits-all résumé.
The hardest part about résumé writing is having descriptions that fully encapsulate your accomplishments from past work experiences in a meaningful and impressive way.
What does it mean for your descriptions to be meaningful and impressive? It means getting the recruiter to think: “This is someone that has the skill sets we are looking for. This is someone that has made a significant impact in their past jobs. This is someone we would like to interview and potentially hire.”
The primary objective of the Employment section is to show the impact and value that you had while working at an established institution. Your goal is to show recruiters that you are a candidate that can get things done and do them well.
To best showcase my accomplishments in my résumé, I adopted the following powerful formula, created by the Former SVP of People Operations at Google, Laszlo Bock:
“Accomplished [X] as measured by [Y] by doing [Z]” — Laszlo Bock
You can see this very clearly in the very first bullet point of this section on my résumé.
Improved device’s battery lifespan by 8% by integrating a fuel gauge sensor and establishing a battery saving state
Let’s break it down:
Accomplished [X]- Improved device’s battery lifespan
Measured by [Y]- by 8%
By Doing [Z]- integrating a fuel gauge sensor and establishing a battery saving state
I leveraged this formula in some shape or form in almost every sentence in my résumé.
To help you along this process, below is a word bank of excellent verbs you can and should use:
Here are some examples of fill-in the blank sentences that I have come up with for you to get started:
- Reduced _____ by _____ by _____.
- Redesigned _____ for _____.
- Implemented _____ for _____ by _____.
- Improved _____ by _____ through _____.
- Utilized _____ to _____ for _____.
- Increased _____ by _____ through _____.
- Integrated _____ by _____ for _____.
- Incorporated _____ for _____ by _____.
Recap: Use the “Accomplished [X] as measured by [Y] by doing [Z]” formula. It’s the most effective and most apparent way of showing recruiters/managers your impact.
Lastly, I end each work experience with a leveraged knowledge bullet point. The utility behind this last bit is it enables the reader to really get a sense of the technology I am familiar with by explicitly stating the technologies that I used for the project.
This also allows me to have a concise, but clean ‘Skills’ section located at the bottom of my résumé. Recruiters can then look at the bottom to immediately obtain a sense of my capabilities by seeing which computer languages I am familiar with. If they are looking to see if I have specific knowledge in a particular tool, framework, or library, then they can find this out by looking at my projects.
Recap: Including technologies that you used in your descriptions will help you bypass online keyword filters when applying online. This will also give recruiters a clearer idea of your experiences and knowledge.
Personal Projects (5)
Target Audience: Students looking for software engineering internships/full-time positions + Unique section for software engineering applicants
Maybe if I say it enough times, you will understand the importance of this section, especially for those that do not have work experience.
Personal projects are integral to piquing recruiters and hiring managers interest as it shows you are passionate about programming.
A personal project can be anything programming related, whether it be a Python script, Java program, web page, mobile application, etc. These projects show that you are genuinely interested in computer science and you have strong desires to work as a software engineer because you are willing to go beyond your schoolwork and create something on your own.
Taking the initiative to build something on your own is extremely impressive. It shows that you are dedicated to expanding your knowledge of computer science and that you are not afraid of putting in the extra work to do so. Ultimately, it is a fantastic way to demonstrate self-initiative and genuine interest in this field.
The other benefit of doing personal projects is that you inevitably gain the skills that apply to work in the real world. Things that you don’t usually do at school, but you will do at work such as using standard frameworks/libraries, understanding full-stack web development, creating mobile applications, setting up a development environment, or programming efficiently with Vim.
Tip: Create a personal website that showcases and documents all of your personal projects. This is a little hack that ‘virtually extends’ your résumé beyond the one-page limit.
To reiterate one last time, personal projects show your passion and dedication towards developing the necessary skills need for a job that you don’t yet have. This is a must-have on any software engineering resume.
“Build some iPhone apps, web apps, whatever! Honestly it doesn’t matter that much what you’re building as long as you’re building something. You can build a fairly meaty project in one weekend. This means that with about 3–4 weekends of work, you can make your résumé go from so-so to fantastic. Seriously — I’ve seen lots of people do this.”
- Gayle McDowell, former Google Engineer and Author of Cracking the Coding Interview
If there is a specific company that you really want to work at, one of the best ways to stand out is doing a personal project that is directly related to the job that you are applying for.
A word of caution on this technique. This strategy is not perfect. This only really works for companies like Autodesk which do not have generalized software engineering internships like Google, Facebook, and Microsoft. When starting off early in your career, it is better to generalize and figure out the different disciplines of computer science. Nonetheless, this is an excellent method worth trying if there is a specific company you want.
Recap: Personal projects are imperative. If you haven’t already, start NOW! You have nothing to lose and everything to gain.
Target Audience: Anyone looking for a software engineering job
The title explains it all. Keep this section dumb, simple, and clean. List all the relevant skills that you want the recruiter to know you have. The more skills you have listed here that match key technical words in the qualification section of the job description, the better your chances!
This will allow you to bypass the online keyword scanner easily. However, this is not a fool-proof method of circumventing the scanner. Ultimately it is a recruiter who gets their hands on your résumé that decides, but they will also be more inclined to give you an interview if they see you as a good fit for the job!
A thing to note about the skills section is to NOT simply list all the keywords on the job description just for the sake of showing you’re a good fit. It will come back to bite you as you will be questioned on the skills you claim to know.
Part of giving yourself some leeway in this is including an indication of your proficiency level. Since you are probably not practicing every language you’ve ever encountered on a day to day basis, including a proficiency level can help the recruiter know your strongest languages at a moment in time and other languages that you are familiar with.
I’ve opted to use two tiers:
- Proficient - Languages that I am very familiar with, feel very comfortable using, and can interview with right now.
- Familiar - Languages that I have utilized in the past but may not be as knowledgeable in currently, but can pick back up given time.
Other valid options include:
- Working Knowledge
- Basic Knowledge
Recap: When applying for a specific job online, cross-reference the job description and add essential technical keywords on your résumé to increase your chance of getting an interview.
- Make sure your name and contact information is correct and legible
- Be sure to include your education. If your GPA is low, leave it out or be creative!
- Utilize the “Accomplished [X] as measured by [Y] by doing [Z]” formula to effectively show the impact that you had in your past employment
- Do personal projects — especially if you do not have past experience working in tech
While this résumé got me interviews at numerous software engineering companies, there is no guarantee that following all the principles and techniques I have explained here will yield the same results for you.
This was my senior year résumé in 2017. It is a showcase of my journey and interest in software engineering. Copying it will do you no good, as technology is constantly evolving and the talent search is an ever-changing process. Instead, use this as a reference.
Use my résumé and this article as a resource to become a better résumé writer and a more effective communicator. Focus on learning how to best convey your skills and achievements to others. This in itself is an invaluable, lifelong skill that you will need wherever you go.
As you write your résumé, please remember — be yourself!
Your résumé is a list of your own accomplishments, achievements, and interests. Your goal is to craft the most polished version of yourself. Lastly, have fun and enjoy the process!
For anyone interested in using this resume template, I obtained it from CareerCup which was founded by Gayle Laakmann McDowell, author of Cracking The Coding Interview.
From personal experience, what’s most important is the content. The resume writing principles discussed above can be applied to any template!