• How to write a killer Software Engineering Resume
  • By Terrence Kuo
  • Translation from: The Gold Project
  • This article is permalink: github.com/xitu/gold-m…
  • Translator: EmilyQiRabbit
  • Proofreader: Lihanxiang, iWeslie

This is an in-depth resume analysis that got me interviews with Google, Facebook, Amazon, Microsoft, Apple and many other companies.

This resume got me into interviews with Google, Facebook, Amazon, Microsoft, and Apple.

2017 in the senior class resume

I get these interviews by consistently putting my resume into a resume black hole, also known as an online application.

Online application is the most common way for people to apply for a job, and it is also the most effective way to get an interview in a competitive environment. That’s how I got all my interviews.

How did I do it?

In this article, I will take a line-by-line analysis of my resume with the following goals in mind:

  • Describe the choices I made while creating my resume
  • Why do I believe my resume will help me get an interview
  • How can you create a better resume

When I first looked for a job, I had a hard time getting an interview, so I decided to write this article. It would have been helpful to have a sample resume with practical applications to show me.

This article consists of the following parts:

  1. All the familiar methods failed to get me into the interview — a brief setback in my initial job search
  2. Analyze options further — reflect on different strategies to improve your chances of getting into an interview
  3. Example: To learn how to write a killer RESUME — a step by step analysis of my resume, here are the corresponding sections of my resume:
  • Summary the paper
  • Who are you
  • contact
  • Education experience
  • Work experience
  • Personal projects
  • skills

All the familiar methods failed to get me into the interview

Net”

You should know that all companies provide an online application link. The classic job page shows you a list of job titles that you think you’re qualified for before you click through the job description and read the minimum requirements.

Google’s job page

The job description will have a list of words you’ve never heard of, maybe heard of, or wish you’d heard of. There is also an innocent-looking “apply” button.

Google Job Description

Even though you don’t feel confident about your qualifications, you apply because you want to get a job.

So you fill out the application, press submit — and wait and hope for a positive response.

There are several different outcomes:

  1. Phone interview 🎉 (yeah, a chance to get hired)
  2. Reject 😢 immediately (fuck, start over)
  3. No reply 😞 (god, at least give me a polite reply to end this thing)

Repeat until success… Isn’t it?

Sadly, this is the classic process for many people looking for a job or an internship.

Apply to several companies. Receive multiple rejections or no response at all. Then apply to more companies and get more rejections or no response. And so it goes round and round.

Why are we doing this to ourselves? We spend a lot of time doing the same thing over and over again with the same and disappointing results.

Because that’s what everyone has to do to get an interview, right? Because at least we’re moving in the right direction, and there’s a glimmer of hope, right? How else are you gonna get an interview?

Further evaluation of options

“Frustration and failure are the two biggest stumbling blocks to success.”

— Dale Carnegie, author of How to Win Friends and Influence People

We can think of two solutions to not getting an interview:

  1. Take a good look at your application or resume
  2. Reflect on how you tried to get an interview

This article will focus on the former, because no matter which way you end up getting an interview, virtually every company will use your resume as the basis for your evaluation. So let’s go over my resume and focus on how to write a great resume.

Getting an interview through online application can be challenging because your resume must go through several steps before reaching the hiring manager.

It has to pass an online keyword filter and stand out from the recruiter, who will only look at it for about six seconds and meet the hiring experience’s psychological expectations to decide if you’re worth an interview.

Despite all the difficulties, I got all my interviews through online application. How did I do it? The answer is trial and error. Since sophomore year, I have applied for hundreds of different software engineer positions.

I also got a lot of rejection when I first applied for jobs, but over time I learned how to adapt. By the time I was a senior, I was getting interviews with every company I applied to.

The resume that got me into the interview was the one that this article is about.

It took me four years of refinement and practice to get to this point. From these experiences, I have come up with a set of rules for writing a good resume as a software engineer. These rules helped me get my dream job, and I believe they can help you as well.

It took me four years of college to figure out the rules, but you don’t have to go through that again, because you can learn everything from this article right now.

My goal is to be a one-stop shop for all your questions about how to get an interview for a software engineering job. So you don’t have to waste a lot of time trying to put together your resume writing experience, and you’ll have a perfect resume that qualifies you as a software engineer.

Your valuable time will be put to better use, writing a killer resume.

Start with this article right now. With knowledge from my past experience, let’s take a look at my resume.

Learn how to write a killer RESUME by example

“There may be an infinite number of ways to solve a problem, but there are only a few principles. As long as one grasps the principles, one can successfully choose a good method. But if he ignores the principles and just tries a lot of things, then he’s definitely in trouble.”

– Ralph Waldo Emerson

Let’s take a look at the resume:

Highlight the key parts

The profile view

It’s a one-page resume

Recruiters don’t have much time to read your resume. The average resume takes six seconds. Keep your resume brief.

First, education, work history, software projects, skills

Rank the chapters in order of importance from top to bottom. Personal projects are unique and essential to a software engineering job search.

Use the same font and layout for each section

Make sure that all parts look and feel the same. Consistency is important because it improves readability. Readability is a must.

So why does this resume work? Let’s explore a few key points.

Who are you

Target audience: Anyone who needs to write a resume

Personal name part

It’s easy to start, just your name. Put your name at the beginning of your resume in a large font.

You don’t need fancy colors or fancy fonts. Just keep it simple. You want recruiters to know who you are by being able to recognize your name easily from a distance. If the employer only needs him for the simplest job, he will be happy to do it. And a recruiter in a good mood is more likely to give you an interview.

Bottom line: Make it easy for recruiters to find your name.

(2) Contact information

Target audience: Anyone who needs to write a resume

Contact Information section

Your contact information should be as recognizable as your name. It’s very important. Of all things in the world, don’t forget that, otherwise how on earth are recruiters going to contact you?

Bottom line: Fill in the correct contact information, otherwise you may never be reached.

3) Education

Target audience: Anyone who needs a resume and has a degree

Education section: Title

If you are in college or have graduated from college, that experience should be on the first part of your resume, because going to college is a big personal achievement. According to the BUREAU of Labor Statistics, only “66.7 percent of high school graduates between the ages of 16 and 24 in 2017 went on to college.” So add it proudly!

This piece of information immediately tells the employer that you have been accepted into the university and have been studying, which is critical because technology is constantly changing. And this information may be a factor in your success in getting an interview, so make sure you include it.

Summary: Write down where you were educated.

Education: Curriculum

Be sure to include courses that are relevant to the job you are applying for. While a course in the history of Italian cuisine sounds appealing, it has no place on your resume when applying for a job in computer science.

This will greatly increase the chances that recruiters and hiring managers will review your resume and decide if you’re a good fit for the position. And again, if the recruiter is in a good mood, they’re more likely to give you an interview.

Summary: Only relevant courses are included.

Education: GPA

Okay, GPA. Before we get into this, let’s remind ourselves what the main purpose of a resume is.

The main purpose of a resume is to highlight your knowledge, skills, and accomplishments in a concise manner. You want your resume to include things that you’re proud of, and things that are impressive. You want to include the best picture possible of yourself so that recruiters and hiring managers will want to interview you.

Now come back to your GPA. It’s obvious whether your GPA stands out or not. If your GPA is below 3.0, leave it off the resume. There’s nothing wrong with not having your GPA on your resume if it could negatively affect your chances.

If your GPA is between 3.0 and 3.2, there are trade-offs. Speaking from personal experience, I’ve talked to companies where the minimum requirement is a 3.2 GPA, but these are mostly financial companies or measurement companies. Most software companies don’t pay much attention to your GPA. If you score above 3.2, put it on your resume.

Don’t be afraid if you have a low GPA, because it may give you an opportunity to be creative. My GPA is 3.2 because I did not do well in the AP and humanities courses in my freshman year. But once I finished those classes and started my major, my major GPA was 3.44, which was pretty high. So I put this on my resume (but be sure to consider it as a departmental GPA).

There are many ways to present yourself as much as possible, even though some may seem like a liability. This is just one example, but there are many more ways to find out. Embrace your flaws and accomplishments, for they are who you are. Be honest and sincere, and focus on showing the best part of yourself.

Bottom line: Your GPA does not define who you are. The purpose of your resume is to present you in your best light. Never forget this! Be creative and don’t lie.

(4) Work experience

Target audience: Students with software engineering work experience.

Work Experience section

If you are a college student with no work experience, don’t worry! This is the resume I applied for a full-time job in my senior year. I was lucky enough to get relevant work experience during my summer internship, but it was still not enough to get an interview. If you find that you have less to write about in this section, skip to the “Personal Projects” section.

Work experience section: head

While past work experience is great, not all work experience is equal when it comes to applying for a software engineering job. Please focus only on the work experience relevant to the job you are applying for. For example, if you have a job as a cashier in a retail company or as a waiter in the food industry, don’t add them! Unfortunately, your ability to count money or serve food doesn’t tell anyone anything about what makes you a software engineer.

A recruiter’s goal is to match candidates with jobs that match the candidate’s skills. Therefore, it is essential to include only past work experience that is somewhat relevant to the job you are applying for.

Achieving this part of the goal means creating a collection of resumes, each tailored to a different job that interests you. It’s similar to the college application process, where you have to write a separate essay for each college you apply to. Every university has its own values, culture, and vision, so it’s almost impossible to write an essay that is universal and suitable for all universities. Therefore, your resume must be customized for the job you are applying for.

Finally, annotate the date. Order your work experience in chronological order, starting with the most recent. For undergraduates, this means adding work experience that is both recent and relevant. Too bad, no one cares what you did in middle school or high school. If the experience is out of date, discard it.

Bottom line: Customize a different version of your resume for each job you apply for. There is no one resume that fits all scenarios.

Work experience section: Description

The hardest part of writing a resume is fully summarizing your past accomplishments in a meaningful and impressive way.

What does a meaningful and impressive description mean to you? It means making recruiters think: “This person has the skills we’re looking for. This man has had a remarkable influence in his past work. This is the person we would like to interview and possibly hire.”

The main purpose of the work experience section is to demonstrate your impact and value in a mature organization. Your goal is to show the recruiter that you are a candidate who can get things done and get the job done.

To best showcase my accomplishments on my resume, I used a sentence structure developed by Laszlo Bock, former senior vice president of people operations at Google:

“The effect of [X] achieved by [Z] enhances or improves (a measure) [Y]” — Laszlo Bock

You can see this very clearly in the first bullet point of my resume.

Improved device battery life by 8% by integrating the oil gauge sensor and setting the battery power saving status

Let’s disassemble this sentence:

Achieved [X] – improved device battery life

Increase or improve [Y] — 8 percent

By [Z] — by integrating the oil gauge sensor and setting the battery power saving status

Almost every sentence in my resume uses this formula.

To help you with this, here’s a good list of verbs you can and should use:

Verb phrase library

Here are some examples of sentences I’ve identified that can be filled in. You can start here:

  • Reduced _____ to _____ by _____.
  • _____ was redesigned for _____.
  • Completed _____ through _____ for _____.
  • _____ is optimized for _____ through _____.
  • Applied _____ to _____ for _____.
  • Improved _____ to _____ through _____.
  • For _____ to integrate _____ through _____.
  • _____ was founded through _____ for _____.

[Z] achieves the effect of [X], improves or improves (a measure of) [Y]. This is one of the most effective and visible ways to show your impact to a recruiter or manager.

Work experience: knowledge application

Finally, every work experience ends with this point of applying knowledge. This last point is a clear description of the techniques I used in the project, which serves to make it clear to the reader which techniques I am familiar with.

Again, this allows me to have a lean but clear “skills” section at the end of my resume. The recruiter can quickly acquire the skills I have mastered by looking at the computer language I am familiar with at the end of the resume. If they are looking for expertise in whether I know a particular skill, framework, or library, that will be found under each of my projects.

Bottom line: Include the technology you use in your description, which will help you filter through online keywords when applying online. It also gives the employer a clearer picture of your experience and knowledge.

(5) Individual projects

Target audience: Students looking for a software engineering internship or simply + special section for software engineering applicants

Individual projects

If I say this enough times, you’ll understand the importance of this part, especially for those who haven’t had work experience yet.

Personal projects are the ones that intrigue recruiters and hiring managers because they show that you’re passionate about programming.

Personal projects can be anything programming-related, be it Python scripts, Java programs, web pages, mobile applications, etc. These projects show that you are genuinely interested in computer science and have a strong desire to work as a software engineer because you are willing to explore beyond your schoolwork and create something of your own.

Taking the initiative to create something of your own is impressive. This shows that you’re passionate about expanding your computer science knowledge and aren’t afraid to put in a little extra work to get it done. Ultimately, it’s a great way to demonstrate your autonomy and genuine interest in the area.

Another benefit of working on a personal project is that you’re sure to gain the skills you need to actually find a job. Things that you may not do often in school, but you do at work, such as working with standard frameworks and libraries, understanding full-stack networking development, creating mobile applications, setting up development environments, or programming efficiently with Vim.

Note: Create a personal website that displays and states all your personal projects. This is a little hack that allows your resume to “substantially break” the one-page limit.

Last but not least, a personal project shows that you are passionate about learning skills you don’t have for the job. This is a required part of a software engineering resume.

“Build some iPhone apps, web apps, whatever! In fact, it doesn’t matter what you’re building as long as you’re doing it. You can build a pretty good project in a weekend. This means that in three or four weekend workloads, you can turn an average resume into something spectacular. Seriously, I’ve seen a lot of people do it.”

— Gayle McDowell, former Google engineer and author of Cracking the Coding Interview

If you really want to work for a particular company, the best way to get noticed is to create a personal project that is directly related to the position you are applying for.

I got my Autodesk internship by signing up for a free online interactive computer graphics course at Udacity. This course taught ME to use a JavaScript library called three.js, when in fact, there was a software engineering internship at Autodesk that was looking for someone with knowledge of the web full stack and three.js (aka ME).

This technique requires caution. The strategy is not perfect. Only companies like Autodesk, which don’t have the generic software engineering internships of Google, Facebook and Microsoft, do this work. At the start of your career, it’s best to generalize and understand the rules that make computer science different. Still, if you have a company you really want to work at, it’s a worthwhile approach.

Conclusion: Individual projects are a must. If you haven’t already, start now! You have nothing to lose and everything to win.

6. Skills

Target audience: Anyone who wants to apply for a software engineering job

Skills part

The title says it all. Keep this part easy to understand and simple. Make a list of all the skills you’d like the employer to know you have. The more skills on the list that match the key technical terms in the job description, the better your chances.

This will allow you to easily pass online keyword scanning. However, this is not a foolproof way to bypass scanning. Ultimately, the recruiter will make a decision based on your resume, but if he thinks you’re a good fit for the job, he’ll be more inclined to give you an interview.

One thing you don’t want to do in the skills section is to not list all the keywords in the job description just to show that you’re a good fit. This can be difficult for you because you claim to know all the skills that will be asked.

The part where you give yourself some leeway is to include a proficiency marker in your resume. Since you probably don’t practice every language you come across every day, this level of proficiency will help the employer understand your most solid language as well as other languages you are familiar with.

I chose to use two:

  1. Fluent — I know the language well enough to be able to be interviewed right now.
  2. Familiarity – a language that I have used in the past and may not be proficient in now, but can become familiar in a given time.

Other options available include:

  1. The higher
  2. The intermediate
  3. The basic

or

  1. Proficient in the
  2. The higher
  3. The intermediate

or

  1. fluent
  2. Proficient in
  3. Be familiar with

or

  1. Working knowledge
  2. Basic knowledge of

Bottom line: When applying for specific jobs online, cross-reference job intelligence descriptions and include the necessary technical keywords in your resume to improve your chances of getting an interview.

The key point

  • Make sure your name and contact information are authentic and legitimate
  • Be sure to include your educational message. If you have a low GPA, don’t write it, or get creative!
  • Effectively demonstrate your influence in your past jobs by using the sentence pattern “achieved [X] effect, improved or improved (measure) [Y] by [Z]”
  • Work on personal projects — especially if you don’t have technical work experience

One last thought

While this resume has landed me interviews for countless software engineering jobs, there’s no guarantee that all the rules and techniques I’ve explained will deliver the same results for you.

This is the resume of my senior class in 2017. A showcase of my travels and interests in software engineering. A direct copy won’t get you anywhere, because technology is constantly improving and talent search is an ever-changing process. Instead, use it as a reference.

Use my resume and this article as a resource to help you become a better resume writer and more effective communicator. Focus on learning how to pass on your skills and accomplishments to others. This in itself is an invaluable, lifelong skill that you will need wherever you go.

When writing your resume, remember — be yourself!

Your resume lists your accomplishments and interests. Your goal is to bring out the best in you. Finally, have fun and enjoy the process.


Those interested in using this resume template can obtain it from CareerCup, which was created by Gayle Laakmann McDowell, author of The Cracking The Coding Interview.

From personal experience, what matters most is content. The principles of resume writing discussed above can be applied to any template!


10.24.18 — Thanks for all the support. Due to the limited time, I will randomly select three people from my address book every weekend and give them the opportunity to give free feedback on their resume. If you’re a student looking for a summer internship, this is a great opportunity for you!

Click here to subscribe.

If you find any errors in the translation or other areas that need improvement, you are welcome to revise and PR the translation in the Gold Translation program, and you can also get corresponding bonus points. The permanent link to this article at the beginning of this article is the MarkDown link to this article on GitHub.


Diggings translation project is a community for translating quality Internet technical articles from diggings English sharing articles. The content covers the fields of Android, iOS, front end, back end, blockchain, products, design, artificial intelligence and so on. For more high-quality translations, please keep paying attention to The Translation Project, official weibo and zhihu column.