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.
- Test the readability and formatting of your resume using industry-standard ATS like [Resume Worded](https://resumeworded.com/resume-scanner) or free tools like [AI Resume Judge](https://ayehigh.com/resume-judge). Most big companies use such resume scanners.
- Tailor your resume according to the job requirement. You can use tools like [Targeted Resume](https://resumeworded.com/targeted-resume) or [Resume Shortlister](https://ayehigh.com/resume-shortlister) to check how good your resume is for the job you are applying for. It gives you good improvement tips and a list of keywords that you can add to your resume for better chances in ATS ranking.
Your cover letter serves as a handshake, an introduction to the professional persona encapsulated in your resume. It's an avenue to express your genuine interest in a position or a particular company, portraying the value you can add to the organization. Unlike the formal tone of a resume, a cover letter allows for a unique, creative expression of your personal brand, ensuring it **complements rather than replicates** your resume.
**Tailoring is key in crafting a compelling cover letter. **It is about aligning your skills and aspirations with the role at hand, going beyond mere name switches. Hence, delve into the company's ethos, the industry, and the specific role, letting your cover letter reflect a clear understanding and a deliberate choice. You need to show that you have done your research and you understand the company mission and how you will contribute towards that goal.
:::tip Expert tip
The cover letter should **highlight the resume, rather than duplicate the content** (which is what is seen too often). In some cases, the cover letter will be the first document, and sometimes, the only document an employer or recruiter sees, and as such, should make a stellar first impression.
:::
Here's a structure to transform your cover letter into a compelling narrative:
- Capture Attention: In your opening paragraph, succinctly present the primary reasons you are an ideal candidate for the job.
- Express Your Value: Highlight **what you bring to the table**, how you can contribute to the company's goals.
- Narrate Succinctly: People resonate with stories. Share a **brief, relevant narrative** that leaves the reader intrigued. Similar to your resume, you should very rarely go beyond the one page limit.
### Common pitfalls to avoid on your cover letter
- The Generic Trap: **Tailor your cover letter** to the job and company. Avoid a one-size-fits-all approach.
- Repetition: Your cover letter should **accentuate your resume, not echo it.**
- Over-verbosity: Keep it crisp, to the point, and **under a page.**
- Sloppiness: Errors in spelling or grammar reflect poorly on your attention to detail. Proofread meticulously.
### Practical tips
- Align your qualifications with the employer's needs.
- Keep it engaging. Avoid cliches and standard phrases. Your first paragraph should capture the attention of the employer.
- Ensure your cover letter is free from errors. Enlist a friend to review it or put it aside and review with fresh eyes later.
### Cover letter example and evaluation
Example of an ML Engineer Cover Letter:
1.*Paragraph 1: The Hook and personal touch*
<br></br>
> Growing up in Argentina, questions about economics are part of everyday life long before you become an Economics student. While many developing countries suffer the consequences of natural disasters or geopolitical conflicts, most - generations of Argentines have spent their entire lives avoiding the consequences of the crisis caused by macroeconomic imbalances in our country. Possibly due to this history, it is practically impossible to spend a day of your life without listening to a friend or family member make predictions about what the exchange rate between the peso and the dollar should be, or their opinion about what should be done by the Central Bank to lower inflation.
<br></br>
2.*Paragraph 2: Motivation, background and growth story*
<br></br>
> Curiosity to find an answer to these daily questions was what motivated me to start my Degree in Economics at the University of Buenos Aires. I did my entire university career while working at the [BANK], experience that was exhausting and challenging in similar proportions. During my eight years working in a financial institution, I have seen first-hand how new technologies and Big Data tools have been transforming the way in which corporate decisions are made. That aroused my curiosity in the different Machine Learning techniques and for that reason I moved to Madrid to perform my Master in Big Data. After that, I was approached by a recruiter that gave me the opportunity to unleash my skills in the gaming industry in London.
3.*Paragraph 3: Showcase achievements, impact and stakeholder management*
<br></br>
> [GAMING COMPANY] gave me an incredible opportunity. For the first time in my career, I was able to connect my childhood memories as a gamer with my professional skills. The capable leadership at [GAMING COMPANY] quickly identified my project management and analytical skills and they gave me huge responsibilities. I worked closely with the Chief Strategy Officer and the Head of External Developer Relations to identify potential publishing and M&A opportunities. During my watch we closed two strategic deals that are now contributing with more than 10% of the portfolio revenue. After that incredible experience, I was invited to join a start-smaller SaaS mobile data company called [SAAS COMPANY]. It was a hard decision but the challenge of joining a start-up and helping they grow and expand globally was an opportunity that I could not decline.
4.*Paragraph 4: Motivation to join the company aligned with personal values*
<br></br>
> After [SAAS COMPANY] I had the opportunity to apply my skills in the Fintech industry. Coming from Argentina, where the population suffer the consequences of the absence of good credit, I was extremely excited about [BNLP FINTECH]’s mission of democratizing free-credit in the UK and the U.S.
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>