写出 FAANG-ready software engineer resume 的实用指南
如何写一份 top-tier、ATS-friendly 的 resume,足以通过 Google、Amazon、Facebook、Microsoft 的 resume screening
不明白为什么你还是进不了一些(或全部)top tech company 的 shortlist?你的 software engineer resume 可能是问题。
作为 FAANG interviewer 看过大量 software engineering resumes,我认识的一些很强的候选人也会因为 resume 不够好而被刷掉。很多人第一反应是自己不够 qualified,但这往往离真相很远。
好消息是,你可以按照具体步骤和要求来写出一份好的 software engineer resume。从 resume 结构、内容,到可以免费测试 resume 的工具,我整理了一个非常精简的 best practices summary,帮助你准备 FAANG software engineering job application:
- Set up 一个 ATS-friendly resume template
- 用有逻辑顺序和良好 framing 的内容填充 template
- 用优先级和关键词优化 resume
- 用免费工具测试 resume
如何 set up 一个 ATS-friendly software engineer resume
免费认证与项目合集
快速补齐简历亮点,提升筛选通过率。
很多人没意识到,大多数 top tech companies 都在用 Applicant Tracking Systems(ATS)去解析和筛选几千份 resume,还没到 human eye 之前就先筛掉了。在不少公司,ATS 甚至会用规则自动 reject 候选人。
不同公司用的 ATS 不一样,但你仍然可以确保自己的 software engineer resume 被大多数 ATS 正常、正向地读取。本节确保你的 resume 至少能被 ATS 完美读懂,后面几节会进一步提升你通过 ATS screening 的概率。
Tip: Expert tip
FAANG Tech Leads 目前提供 70% off 的 resume templates 和 examples。
他们的 templates:
- 由 ex-FAANG hiring managers 基于数百份 top resumes 制作
- 保证 FAANG ATS 可读性
- 覆盖不同经验水平
他们也提供来自拿到 multiple FAANG offers 的候选人 examples/references,能帮你写出同等水准的 content。Check it out!
只用 Microsoft Word 或 Google Docs 来创建和编辑 resume
Do's
- 提交时用 PDF 以保留格式,但一定从 Microsoft Word 或 Google Docs 生成。确保 text 可被高亮,这是 ATS 易于解析的前提。
- ATS 工具一直在提升对标准 resume 格式的可读性,所以格式越常见越好。
- 为了最大化 space,不要用 header/footer,改成缩小页边距——窄边距每侧 0.5。
Don'ts
- 不要用 Photoshop、其他 graphic design 工具或在线 resume builder 来做 resume
- 不要用 Word/Google Docs 的 header 或 footer,改为缩小边距,把信息写在正文里
只用标准字体,字号要可读
新字体可能会把字母转换成 ATS 读不出来的特殊字符。推荐字体:Arial、Calibri、Garamond。
字号也要保证后续 human 读取顺畅——最小 10px。
用标准 section heading 和顺序
ATS 需要识别并解析标准类型的信息。用标准的 header titles 和顺序可以帮它更好理解。
这是我实践有效、recruiters 也推荐的顺序:
| Section | Heading Name |
|---|---|
| Professional summary | (用 resume headline 作为 section title,例如 "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(注意:如果你还在学校或经验少于 3 年,可以把 Education 放前面) | "Education" |
| Projects | "Projects" |
| Other optional sections - 例如 Certifications、Awards 等 | "Awards and Accolades" / "Certifications" / "Awards, Accolades and Certifications" |
Caution
Header 里不要加 symbol,避免 ATS 可读性问题。
如何写好 Software Engineer resume content
Software engineering 的技能和经历和其他职业差异很大,所以 software engineer resume 的内容要求也更独特。以下每段会讲各个 section 通常需要的内容。
如何写 software engineer 的 professional summary
一个好的 professional summary 可以直接改变局面。它不仅能总结你的整个职业经历(单个 section 做不到),还可以给 hiring manager 留下很好的第一印象。
以我作为 software engineering interviewer 的经验,我非常推荐写 professional summary,因为面试官通常没有时间细读细节——summary 能直接解释你为什么 fit 这个 job,会显著提升被注意到的概率。
以下是我写 software engineering resume summary 的 top tips。
开始前:列出你的 best selling points
从你所有经历里,挑出最重要、最贴合 JD 的点(可以是 job experience 或 skills)。
把 selling points 总结进 resume summary
尽量压缩成不超过 50 words 的 short summary:
确保做到:
- ✅ 回答“为什么你适合这个 job”
- ✅ 用 active voice
- ✅ 使用 action words
- ✅ 用职位名作为开头,比如 "Software Engineer"、"Front End Engineer"
给 resume summary 写个 headline
不要用 “Professional Summary” 当 section title,而是把你的经验进一步精炼成 10 个词以内的 headline。把它当作 LinkedIn headline 的升级版。示例:
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.
Info
更多专业 summary 的写法可参考 FAANG Tech Leads' Resume Handbook。
如何写 Software Engineer 的 contact information
Must-haves
- Name(必须放在 resume 最上方)
- 个人手机号
- 不要写公司电话
- Location - City, State, Zip
- 让 recruiter 判断你是 local 还是 international candidate 就够了
- Email address
- 不要用工作邮箱
- 推荐用 Gmail
- LinkedIn profile
Good-to-haves
- GitHub profile URL
- Personal website URL
- Stack Overflow profile URL
- Medium profile URL
- Competitive coding profile
- CodeChef
- HackerRank
信息之间需要分隔就用 "|" 或 tab。
有相关成就的,标出来:比如 max rating、ranking、stars、badges。
Info
更多 contact information 的写法可参考 FAANG Tech Leads' Resume Handbook。
如何写 Software Engineer 的 skills
包含 programming languages 和 tech stack:
建议结构如下:
[Skill summary] : [List skills separated by "|"]
- Programming languages - 如果很强可以写熟练度,比如 "Over 10,000 lines"
- Frameworks
- Databases
Info
更多 skills 的写法可参考 FAANG Tech Leads' Resume Handbook。
如何写 Software Engineer 的 work experience
按照常见格式 + reverse chronological order。每份工作都要包含:
公司、地点、职位、工作时长,结构如下:
[Company or Organization], [Location] | [Job Title] | [Start and end dates formatted as MM/YYYY]
Example
Facebook, Singapore | Front End Engineering Lead | 08/2018 - Present
然后列出 top accomplishments,包含:
- 工作 scope 和需要的 skills
- 成就用如下结构写
-
[Accomplishment summary] : [Action] that resulted in [quantifiable outcome]
-
Info
更多 work experience 的写法可参考 FAANG Tech Leads' Resume Handbook。
如何写 Software Engineer 的 education
大多数 software engineering job 至少要求本科。但除非你是 recent graduate 或 work experience 不多,否则 Education 不应该排在 Work Experience 前面。
可用以下格式,不相关的信息可以删:
[Degree Name], [Year of Graduation - write expected graduation date if not graduated]
[University Name], [Location]
GPA: X.XX / 4.0 (List GPA if more than 3.50/4.00, or more than 4.3 under a 5-point system)
List key achievements, including leadership positions, skills, societies, projects, awards, etc.
Example:
BSc in Computing, Computer Science, Graduation Year 2015
National University of Singapore, Singapore
GPA: 3.82 / 4.00 (Magna cum laude)
Dean's List, Valedictorian
President of hacker society
Info
更多 education 的写法可参考 FAANG Tech Leads' Resume Handbook。
如何写 Software Engineer 的 projects
至少写 2 个你参与过的 projects,并说明关键贡献。尽量把 project name 链接到 GitHub 或其他可展示的页面。
facebook/docusaurus
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.
如何写 Software Engineer 的 awards、accolades 和 certifications
只写和 job application 相关的,并尽量量化。推荐格式:
[Year] [Quantification] [Competition]
Example
2016 | Best All-Round Product out of 50 teams | Facebook Hackathon
Info
更多 projects 的呈现方式可参考 FAANG Tech Leads' Resume Handbook。
用关键词优化你的 resume
优化 content 的 must-haves:
Less is more
Do's
- 与其放很多 “average” 成就,不如强调几个最强的 achievement
- 只用 1 页 resume
Don'ts
- 不要为了数量把所有 achievements 都塞进去
Keyword optimization
想象你是 hiring manager / recruiter,一边做很多事一边看 resume——你不会在每份 resume 上花很多时间。HR 看 resume 时其实是在快速扫他们在意的 skills 或 experiences 的关键词,再决定是否继续看。
Recruiters 和 ATS 也在做同样的事,但他们会基于 hiring manager 写的 job description。这就是为什么要根据 JD 来优化 resume。
Info
一些 ATS 会根据关键词出现频率判断你的 skill strength,另一些会根据关键词出现在 resume 的位置来估算你的经验年限。
比如你上一份工作有 3 年,且提到了 Search engine marketing(SEM),ATS 可能会假设你有 5 年 SEM 经验。
把 JD 里的关键词放进 resume
你应该先分析 JD 的 must-have 和 good-to-have skills/experiences,然后确保这些关键词进入 resume。
把关键词放到 "Skills" section,并在 "Work Experience" 和 "Education" 里穿插同样的词。尽量模仿 JD 的语言。
常见缩写也要写全称,例如 Amazon Web Services 而不是 AWS,Google Cloud Platform 而不是 GCP。
但不要为了塞词而 keyword stuffing——resume 最终还是会被 recruiter 或 hiring manager 读到。
优化关键词频率和位置
分析 JD,判断每个 skill/experience 的重要程度,再根据重要性调整关键词出现频率。
Tip: Expert tip
每份申请都优化当然最好,但你也可以把 resume 泛化成某一类岗位:
- 收集 3-5 份该岗位的 JD
- 复制到
.txt文件,上传到免费的 “word and phrase” frequency tool,比如 Online-Utility.org's Text Analyzer,识别高频关键词- 把你具备的 skills/experiences 融入 resume
免费工具来 review 你的 resume
我推荐用这些免费工具来优化 resume:
1. Free resume review
Tech Interview Handbook 有一个 resume review portal,可以上传你的 resume,得到社区成员甚至作者的 comments 和 feedback。
如果你愿意花点钱,我们推荐 FAANG Tech Leads' Resume Review service。它由 ex-FAANG hiring managers 和 engineers 来 review,而不是不懂 tech 的 random writer。
2. 用 industry-standard ATS 测试可读性
- 用 Resume Worded 这类 industry-standard ATS,或免费工具如 AI Resume Judge 来测试 resume 可读性和格式。大公司普遍使用这些 scanner。
- 按 JD 去 tailor resume。可以用 Targeted Resume 或 Resume Shortlister 来检查匹配度,给出 improvement tips 和可加入的关键词清单。
3. Plain text file test
把 resume 内容复制到纯文本里,看是否需要修改:
- 有没有内容丢失
- 字符在纯文本里显示异常
- Sections 是否混乱
Crafting the perfect cover letter
Cover letter 就像一次握手,是 resume 里“专业形象”的延伸介绍。它让你表达对职位/公司的真实兴趣,并展示你能给组织带来的价值。相比 resume 的正式语气,cover letter 允许你更 creative 地表达个人 brand,确保它补充而不是重复 resume。
**Tailoring 是写出强 cover letter 的关键。**这不仅是换公司名,更是把你的 skills 和 aspirations 对齐到这个角色。深入理解公司文化、行业和角色,让 cover letter 体现你是有选择、有理解的。你要展示你做过 research,理解公司 mission,以及你如何贡献。
Tip: Expert tip
Cover letter 应该 highlight resume,而不是重复内容(很多人做反了)。有些时候 cover letter 可能是 employer/recruiter 第一份、甚至唯一读到的文档,所以要给出强烈的第一印象。
一个结构建议,把 cover letter 写成有吸引力的叙述:
- Capture Attention:开头简洁说明你为什么是 ideal candidate
- Express Your Value:强调 你能带来什么价值、如何帮助公司目标
- Narrate Succinctly:讲一个 简短且相关的故事。像 resume 一样,尽量不要超过一页
Cover letter 常见坑
- The Generic Trap:针对岗位和公司定制,不要一份通用模板
- Repetition:cover letter 应该 accentuate resume,而不是 echo
- Over-verbosity:保持简洁、直击重点、不超过一页
- Sloppiness:拼写/语法错误会显得细节不到位,务必认真 proofread
Practical tips
- 对齐你的 qualifications 与 employer 的需求
- 保持吸引力,避免 cliches 和标准化用语。第一段要抓住注意力
- 确保没有错误。找朋友 review,或隔一段时间再以 fresh eyes 看
Cover letter example and evaluation
Example of an ML Engineer Cover Letter:
- Paragraph 1: The Hook and personal touch
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.
- Paragraph 2: Motivation, background and growth story
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.
- Paragraph 3: Showcase achievements, impact and stakeholder management
[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.
- Paragraph 4: Motivation to join the company aligned with personal values
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.
Final tips
不要轻视 job application forms
如果公司要求你把 "Work Experience" 和 "Education" 填到他们的表单里,请认真对待。多数情况下,这是 internal HR application,用来解析和筛选候选人信息。甚至有可能你的 resume 根本没被 recruiter/hiring manager 看到——他们只看到你表单里填写的内容。
不要在同一家公司投太多职位
ATS 能让 recruiter 看到你在该公司申请过的所有岗位。尽量别投太多,否则 recruiter 很难判断你到底感兴趣,还是对自己的能力不够了解。比如同一家公司同时投 Software Engineer 和 Data Scientist 通常不是好主意。
resume preparation 的内容就到这里,希望能帮到你!如果你有其他 tips 想分享给 Tech Interview Handbook 的读者,欢迎发邮件到 contact@techinterviewhandbook.org,或者在 GitHub discussion 里开个新帖子。