Having read tons of software engineering resumes as a FAANG interviewer, even some of the most qualified candidates I know fail to get shortlisted due to bad resumes. The mistake most people make is to immediately assume that they weren't qualified enough - but that could be far from the truth.
Thankfully, there are specific steps and requirements you can fulfill to write a good software engineer resume. From your resume structure, content, to free tools you can use to test your resume, I have collated a very concise summary of the best practices to prepare your resume for a FAANG software engineering job application:
Something most candidates may not realize is that most top tech companies are using some form of Applicant Tracking Systems (ATS) to parse and screen thousands of resumes even before they reach human eyes. In many companies, the ATS may even use certain rules to reject candidates automatically.
While different companies could be using different types of ATS, it is possible to ensure that your software engineer resume is read favorably by most ATS. This section ensures your resume is at least perfectly readable by the ATS, while the next few sections improve your chances of passing ATS screenings.
[FAANG Tech Leads](https://www.faangtechleads.com?utm_source=techinterviewhandbook&utm_medium=referral&utm_content=ats_template&aff=1e80c401fe7e2) is currently offering resume templates and examples at **70% off**.
They also offer resume examples/references from candidates who have received multiple offers from FAANG companies - which are helpful in helping you craft content that meets the same bar. [Check it out](https://www.faangtechleads.com?utm_source=techinterviewhandbook&utm_medium=referral&utm_content=ats_template&aff=1e80c401fe7e2)!
- Submit your resume as a PDF file to preserve formatting, but always create it from Microsoft Word or Google Docs. It is important to ensure that the text in your resume is easily highlightable, which is a precondition for easy parsing.
- ATS tools are always trying to improve their readability of standard resume formats - hence the more commonplace your resume format is, the better.
- To maximize space on your resume, rather than using header or footers, reduce the margins of the page - narrow margins are 0.5 on each side.
**Don'ts**
- Do not use Photoshop, other graphic design tools or online resume builders to build your resume
- Do not use the header or footer sections in a Word/Google Docs file - reduce margins instead and just write the information in the body.
### Only use standard fonts of readable sizes
New fonts may convert letters into special characters which are not readable by the ATS. Fonts you should use - **Arial, Calibri, Garamond**.
Ensure your font size remains readable for humans later on in the hiring process - use a minimum size of **10px** for readability.
### Add sections with standard headings and ordering
ATS readers need to identify and parse standard types of information from your resume. Using standard header titles and ordering can help them do that better.
This is the order which has worked well for me and recommended by recruiters:
| Section | Heading Name |
| --- | --- |
| Professional summary | (Use resume headline as section title, for e.g. "Senior Software Engineer at Google with over 5 years of experience leading teams") |
| Contact information | "Contact Information" |
| Skills - programming languages, frameworks, etc. | "Skills" |
| Experience | "Work Experience" |
| Education (Note: if you are still in school or have less than 3 years of experience, you may put Education first) | "Education" |
| Projects | "Projects" |
| Other optional sections - e.g. Certifications, Awards, etc | "Awards and Accolades" / "Certifications" / "Awards, Accolades and Certifications" |
:::caution
Never add symbols to your headers to avoid ATS readability issues.
## How to write good Software Engineer resume content
As software engineering is inherently different from other careers in terms of its required skills and experiences, the content expectations for a software engineer resume is also unique. Each of the following paragraphs will cover the content usually expected for software engineers within each resume section:
### How to write a professional summary for a software engineer
A good professional summary can be a game changer. Not only does it summarize your entire professional experience in a manner that individual sections cannot, it can also leave a pleasant impression on the hiring manager.
From my personal experience as a software engineering interviewer, I highly recommend professional summaries, as interviewers generally may not have the time to read into the detail - hence summaries which directly address why a candidate is a good fit for the job greatly improves their chances of capturing attention.
Here are my top tips for writing a great software engineering resume summary.
#### Before you start: List down your best selling points
From your entire professional experience, list down the most important points that fulfill the job descriptions that you are applying for. This can include job experiences or skills.
#### Summarize the selling points into your resume summary
Summarizing the selling points as much as possible, frame them into a short summary of less than 50 words:
Ensure you do these:
- ✅ Answer why you are a good fit for the job
- ✅ Use an active voice
- ✅ Use action words
- ✅ Start with the noun describing your job role e.g. "Software Engineer", "Front End Engineer"
#### Write a headline for your resume summary
Instead of writing "Professional Summary" as the title of the section, further concise your experience into a headline with fewer than 10 words. Treat it like a slightly more elaborate version of your LinkedIn profile headline. Some examples"
##### Software Engineer (Full Stack)
Software Engineer with X years of full stack web development experience specializing in Ruby on Rails and PostgreSQL. Domain expert in e-commerce and payments field as a result of working at multiple e-commerce companies.
##### Senior Front End Engineer
Front End Engineer with X years of experience and strong fundamentals in Front End technologies. Likes building scalable web infrastructure and making websites fast. Passionate about programming languages, compilers, and developer tooling.
##### Software Engineering Lead
Software Engineer with X years of experience in back end, scaling complex distributed systems, and various cloud platforms. Led over 5 engineering teams with an average size of 6 members across two companies and mentored over 20 junior members.
##### Senior at University X
Senior Year student at University X with a focus on Artificial Intelligence and Machine Learning (ML). Interned at X companies and worked on full stack development and ML engineering roles.
Read more about how to make your Professional Summary stand out on [FAANG Tech Leads' Resume Handbook](https://www.faangtechleads.com/resume/professional-summary).
Read more about getting your contact information section right with [FAANG Tech Leads' Resume Handbook](https://www.faangtechleads.com/resume/contact-information).
Read more about presenting your conveying job experience well on [FAANG Tech Leads' Resume Handbook](https://www.faangtechleads.com/resume/work-experience).
### How to write education for a Software Engineer
Most software engineering jobs will require at least an undergraduate degree. However, unless you are a recent graduate or do not have much work experience, it should not be prioritized above your work experience.
Use the following format, eliminating information where it is not relevant:
> [Degree Name], [Year of Graduation - write expected graduation date if not graduated]<br/>[University Name], [Location]<br/>GPA: X.XX / 4.0 (List GPA if more than 3.50/4.00, or more than 4.3 under a 5-point system)<br/>List key achievements, including leadership positions, skills, societies, projects, awards, etc.
Example:
> BSc in Computing, Computer Science, Graduation Year 2015<br/> National University of Singapore, Singapore <br/>GPA: 3.82 / 4.00 (Magna cum laude)<br/>Dean's List, Valedictorian<br/>President of hacker society
Include at least 2 projects you have contributed to, outlining your key contributions. Always try to link your project name to GitHub or somewhere the hiring manager can view your project.
> [facebook/docusaurus](https://github.com/facebook/docusaurus) <br/>Maintainer and lead engineer for Docusaurus v2, a static site generator which powers the documentation of many of Meta's Open Source Projects - React Native, Jest, Relay, Reason, etc. Used by 7.6k > projects on GitHub.
### How to write awards, accolades and certifications for a Software Engineer
Only include achievements related to the job application and try to quantify your achievements. A good format to use would be
> [Year] [Quantification] [Competition]
Example
> 2016 | Best All-Round Product out of 50 teams | Facebook Hackathon
- Highlighting a few of your best achievements is better than including many "average" achievements in your resume
- Use only 1 page for your resume
**Don'ts**
- Do not list all your achievements just to showcase a greater quantity without filtering
### Keyword optimization
Imagine you are a hiring manager or recruiter screening a resume while juggling many other tasks in your job - you simply won't have much time on each resume! When a hiring manager looks at a resume, they are in fact quickly scanning for keywords of skills or experiences that they value, before paying any additional attention to your resume.
Recruiters and ATS do that as well, but based on the job description that the hiring manager helped to write. That is why optimizing your resume based on job descriptions is very important.
:::info
Some ATS will determine the strength of your skills based on the frequency of a keyword in your resume, and others assign an estimated amount of experience for a skill based on its placement in your resume.
For instance, if your previous job experience was 3 years long and you mentioned handling Search engine marketing (SEM), the ATS will assume 5 years of SEM experience.
:::
#### Include keywords from job descriptions into your resume
You should always analyze the job description for must-have and good-to-have skills or experiences and ensure the keywords are added to your resume.
Include them under the "Skills" section and pepper the same keywords into the "Work Experience" and "Education" sections. Be sure to closely imitate the language within the job description.
Remember to include the full version of common abbreviations as well. E.g. Amazon Web Services instead of AWS, Google Cloud Platform instead of GCP.
However, do not do keyword stuffing for the sake of it - always remember that the resume will be read by a recruiter or hiring manager eventually.
#### Optimize keyword frequency and placement
Analyze the job description and determine how important each skill and experience is, then optimize the frequency of the keyword according to its importance.
:::tip Expert tip
While optimizing for every application is ideal, you can generalize your resume to a type of position.
1. Collate 3 to 5 job descriptions for that position
1. Copy and paste them into a `.txt` file and upload it into a free "word and phrase" frequency tool like [Online-Utility.org's Text Analyzer](https://www.online-utility.org/text/analyzer.jsp) to identify regularly used keywords
1. Incorporate skills and experiences that you have into the resume
Tech Interview Handbook has a [resume review portal](https://app.techinterviewhandbook.org/resumes) where you can upload your resume and get helpful comments and feedback from other community members and even the authors of Tech Interview Handbook!
If you are willing to spend some money we recommend [FAANG Tech Leads' Resume Review service](https://www.faangtechleads.com?utm_source=techinterviewhandbook&utm_medium=referral&utm_content=ats_template&aff=1e80c401fe7e2) where your resume will be reviewed by ex-FAANG hiring managers and engineers, not random writers who don't understand technology.
### 2. Test readability with industry-standard ATS
Test the readability and formatting of your resume using . Most big companies use such resume scanners.
### 3. The plain text file test
Simply copy the content from your resume and paste it into a plain text document! Make edits if:
- There are points missing from your original resume
- Characters are displaying incorrectly in plain text
- Sections are disorganized
## Final tips
### Do not take job application forms lightly
If the company you are applying for requires you to fill in the "Work Experience" and "Education" sections into their own form, do not take it lightly! Most of the time, these are internal HR applications which help parse job applications and filter out candidates from the information provided. In fact, it is possible that your resume is never seen by the recruiter or hiring manager - only the information that you fill up in their forms!
### Do not apply to many jobs at the same company
The ATS also allows recruiters to see all the roles you have applied to at their company. Try not to apply to too many jobs as a recruiter wouldn't be able to tell if you're actually interested in or if you're self-aware about your abilities. E.g. applying for a Software Engineer and a Data Scientist role at the same company is not a good idea.
---
And that is it from me in terms of resume preparation - hope this helps! If you have any other tips you would like to share with others on Tech Interview Handbook, do reach out to me at contact@techinterviewhandbook.org or create a new [GitHub discussion item](https://github.com/yangshun/tech-interview-handbook/discussions).
<divclassName="text--center margin-vert--lg">
<figure>
<imgalt="Summary of the 4 steps to create a great software engineering resume, in checklist format"
title="Summary checklist of the four key steps to create a great software engineering resume" className="shadow--md" src={require('@site/static/img/four-steps-to-create-a-software-engineer-resume.jpg').default} style={{maxWidth: 'min(100%, 420px)'}} />
<figcaption>Summary checklist of the four key steps to create a great software engineering resume</figcaption>