Acceptance rates for jobs at the very top tech companies tend to be under 1%. As you can imagine, most candidates don’t get past the resume screening.
To increase your chances of getting to interview stage, use our step-by-step guide to writing a top software engineer resume.
As well as tips and expert insights, it includes examples of SWE resumes that earned candidates offers or interviews at Google and elsewhere.
Here’s an overview of what we’ll cover:
1. 6 key skills for your software engineering resume
2. 5 examples of software engineer resumes that worked for Google, Amazon, etc.
3. How to write a software engineer resume (section-by-section)
4. Your software engineer resume checklist
Let’s get into it.
Get expert feedback on your resume with software engineer ex-interviewers
Note: Credit to Suman (SWE coach on our platform) as well as this excellent Quora discussion) for providing some of the insights and advice in this article
1. Key skills for your software engineer resume
There are some key skills that are important in any software engineer resume, and we're not just talking about the obvious technical skills.
1. Leadership skills, even if you're not applying for a leadership role. Recruiters and hiring managers want to see that you can have what it takes to become a leader if you're not one already. So include examples where you led a project, took the initiative, or influenced other people.
If you haven’t got many strong examples from your work experience, try to find examples from personal projects or university (if recently graduated).
2. Coding languages. Obviously. Google recommends listing these right at the start.
3. Communication skills are needed if you're going to progress at any top company and get more important as you become more senior. If you're applying to a management role, include experience of working with cross-functional teams and aligning various stakeholders.
4. System design skills are needed for engineering roles at FAANG companies. You'll need to be able to discuss engineering architecture and make decisions relating to efficiency, scalability, and performance. So if you have any experience in designing systems, or related experience, make sure it’s prominent on your resume.
5. Domain knowledge. Recruiters want to get a sense of your knowledge across different areas and technologies.
If you don't have much work experience yet, include personal projects as a way to demonstrate domain knowledge (see section 3).
Right, let's see some example resumes.
2. Examples of SWE resumes that worked for Google, Amazon, etc.
Before we start guiding you on how to write your resume step-by-step, take a look at some real examples that got their owners interviews at the very top companies.
You'll notice they follow different formats, and none fully follow the guidelines we set out below. We think this shows two things:
- there's many acceptable ways to write a resume
- your resume doesn't have to be perfect, as long as it demonstrates your skills and achievements effectively.
Let's take a look.
2.1 SWE resume example 1 (Google)
This is a great example of a strong fresher software engineer resume. It got "Ana" interviews at Google despite having almost no professional experience.
Here's what Ana does well on this resume:
- Education first: Ana doesn't have much work experience so she starts with Education, detailing specific topics in both her undergraduate and Masters courses.
- Projects: As a fresher candidate, Ana does well to list some relevant Projects to fill the gap where more experienced candidates would list recent employment.
2.2 SWE resume example 2 (Amazon, SDE)
The candidate, let's call him Sunil, got interviews for a Senior Software Development Engineer role at Amazon with this resume.
Here's our feedback on this resume:
- Experience: We had to blank them out, but Sunil had worked for some really top tech companies. This is what makes the resume really strong.
- Quantifying impact: Sunil could perhaps enhance the resume by better quantifying his actions and demonstrating their impact. For example, he says he "Revised Telemetry dashboards to improve signal-noise ratio". How much did he improve it by? Including specific metrics more often would take this resume to the next level.
- Key skills: Sunil lists key skills and tools that were likely listed as requirements in the job description. This makes a recruiter's life easier.
2.3 SWE resume example 3 (Google, front-end developer)
The resume below is from "Lana". It got her interviews for a front-end developer role at Google.
- Skills: Lana lists her relevant hard skills in a way that's very easy for a recruiter to understand at a glance.
- Languages: Don't make the mistake of thinking languages aren't relevant for a technical job. Lana's five languages signal that she's a strong communicator and helped her get an interview.
- Impact: Lana doesn't include examples of impact and results that she's achieved at work. Doing so would have greatly improved this resume.
2.4 SWE resume example 4 (CrunchyRoll, Android Developer)
This resume got Sam (not his real name) interviews at CrunchyRoll for a Senior Android Developer position.
Here's what we liked about Sam's resume:
- Structure: Sam lists his technical skills, including programming languages, at the top.
- Impact: His work achievements are mostly well-quantified. E.g. 'increasing... downloads by 80% in 2 months."
- Action verbs: He always starts the bullet point with powerful action verbs such as "Created", "Designed", "Fixed", etc.
2.5 SWE resume example 5 (Audible)
The below resume belongs to Jerry, an iOS engineer who at the time of writing was interviewing at Audible.
Right, now you've seen some example resumes, let's look at how you should create yours.
3. How to write a software engineer resume (section-by-section)
Let’s go through the resume-building process, step-by-step, section-by-section.
To illustrate our tips at each stage, and to help you visualize our recommended layout, we’ve created an example resume for you to use as a reference.
Unlike the examples listed above, this is not a real resume. It belongs to an imaginary mid-level software engineer called Karl. It's an amalgamation of the many high-quality resumes that candidates have shared with us before going on to work at Google, Facebook, Amazon, etc.
Click here to download the example software engineer resume template
Right, let’s take the first step in building a software engineer resume.
3.1 Step 1: study the target company and job description
Before you start writing or editing your resume, our tip is that you do some research.
Find the job specification, read it thoroughly, and use it to shape your resume in the following ways:
- First of all, work out what type of SWE profile the job description is looking for. Which skills will be most crucial for the role? What are the keywords it's looking for and does your resume contain them in a way that makes sense? Prepare to adapt your resume’s content accordingly.
- Zoom in on a few of the responsibilities in the job description that you think are most important. Search for specific examples from your past that demonstrate experience in doing the same thing or something very similar. Find the numbers to back it up where possible, so you’re ready to include this information in the work experience section later on.
- Take note of the language used in the job description so you can, where appropriate, match specific verbs and phrases.
- Research the company. For example, imagine you’re targeting a SWE role at Facebook. Facebook has 5 core values, so you’d want to make sure that your resume transmits these values too. That might mean including a volunteering activity under Interests to show that you like to "build social value." Do the same if you’re applying for Google, Amazon, etc.
Does all this mean you’ll need a different iteration of your resume for every tech job you target? Ideally yes, but there will be a lot of overlap, so usually you’ll only need to make a few strategic edits.
Right, once you’ve done the research, you’ll be ready to start writing.
3.2 Step 2: Choose a layout
The design of your resume should have one objective: to convey all the relevant information in a way that is clear, easy to digest, and professional. Use our sample resume as your template, and you’ve already achieved that!
Some people add a second objective: to demonstrate strong design skills in order to stand out from the crowd and impress the recruiter.
However, we recommend treading carefully with this. Recruiters for large companies are unlikely to be impressed by a resume’s design; they’re interested in the content. Some might even be put off by a “creative” or unique design. To avoid this risk, aim to stand out through your resume’s content, not its design.
"No amount of fancy formatting is going to make up for a lack of experience. So reign it in. Also, it's important to keep in mind that if you're applying to a position online, whether it's a PDF or not, many companies' applicant tracking systems parse your resume for information and convert it to pure text as the most immediate viewing format." (Facebook recruiter, Source: Quora)
So since often the recruiter won't even see your resume in the format you've designed it in, we recommend keeping it simple.
3.3 How long should your resume be?
Many candidates ask us if they should stick to just one page. The answer is not necessarily.
On a software engineer resume it’s fine to go to two or even three pages, as long as all the content you’re including is strong and relevant to the role. We can confirm this because many of the candidates who use our coaching service got their SWE interviews using three page resumes.
Engineering resumes are often a bit longer than non-technical resumes, as you need to go into more detail on the different technologies you're familiar with.
However, if you’ve only been working for a few years, or you’ve recently graduated, we recommend sticking to a single page. It recruiters easier to digest your best achievements and it forces you to cut out the weakest content.
3.2.1 Sections / categories
We recommend using the following section layout for a software engineering resume. The exact titles and order of the sections are open to debate, but we find this one works for most people and is also what Google recommends to engineer candidates.
- Personal information (inc programming languages)
- Work experience
- Education
- Awards & Leadership
- Skills & Interests
If you're a junior engineer and you don't have much relevant work experience, switch Education and Work Experience sections, and include some personal projects after your work experience.
- Personal information (inc programming languages)
- Education
- Work experience and personal projects
- Awards & Leadership
- Skills & Interests
Whether or not you stick exactly to our suggested categories, we highly recommend keeping these general layout/design tips in mind:
DO
- Choose a professional-looking font: Size 10-12, black and white. Arial and Calibri work well.
- Save it as a PDF
- Use bullet points
- Make sure the formatting is 100% neat and consistent
- Include enough white space that it doesn’t look overcrowded
DON’T
- Include a “summary” or “objective” section at the top (unless you have an unusual profile that needs explaining). Your resume is already a summary in itself, so this just wastes space
- Include references
- Pick an unusual font to try and stand out
In the remaining steps, we’ll help you craft each section. Let’s go!
3.3 Step 3: the Personal Information section
This section is not the place to try and impress. Just make sure you get your details across in as few words as possible and avoid mistakes.
Notice how the above example is extremely clean and easy to read.
It's a good idea to provide your LinkedIn page so that a recruiter can find out more about you if they wish. As a software engineer, you should also consider linking to some open source contributions you've made. This might be on a site such as GitHub, or similar.
DO:
- Use a larger font for your name than for the rest of the section to make it stand out
- Include your name, email address, phone number, city/county you live in
- Include your programming languages and a link to your profile on GitHub or similar
- Ideally, include a link to your LinkedIn profile
DON’T:
- Title this section. It’s not necessary in this type of layout, so save the space
- Include a street address, as it’s unnecessary and unsafe
- Include a photo, date of birth, or gender, unless specifically requested to do so
- Don’t label each piece of information e.g. “email,” “tel,” etc. It’s obvious what they are, so save the space
3.4 Step 4: the Work Experience section
This is probably the most important part of your resume to get right, and the easiest to get wrong. Many candidates think that their work experience speaks for itself, and simply list their role and a few of their main responsibilities.
However, we recommend a much more powerful approach.
Instead of listing responsibilities, you need to talk about actions. This means starting each bullet point with an action verb. These verbs should relate to the key skills from section 1 that companies look for in software engineer resumes (Leadership, system design, technologies, etc). "Executed," "Unblocked," "Led," and "Delivered" are some good examples of such verbs.
Choosing actions that are relevant to the essential tech skills will also mean that your resume contains the keywords that recruiters (and sometimes Applicant Tracking Systems) will be looking for.
3.4.1 Lazlo Bock's X,Y,Z formula
You should also focus on the results of what you did and quantify them as much as possible to highlight the tangible contributions you have made. Ex-Google SVP Lazlo Bock talks about a common method for doing this that you might find helpful, called the “X, Y, Z” formula.
In essence it is: 'Accomplished [X] as measured by [Y] by doing [Z]'.
Following the X,Y,Z formula is a simple way to make sure you are more specific as possible about your work achievements and quantify them where possible. Let's take a look at some examples:
- "Reduced AWS spending by 15% by designed and implemented resource scaling policies to optimize cloud infrastructure."
- "Improved code quality (40% decrease in post-release bugs Y-on-Y) by implementing a more structured code review system."
- "Reduced server downtime, resulting in 99% server uptime, by deploying automated monitoring tools and establishing proactive alerting system."
Don't feel that all your bullet points have to exactly follow the X,Y,Z formula but it is a really useful mechanism for making sure you give clear, specific and quantifiable examples of your impact.
3.4.2 Junior software engineer candidates
If you don't have much relevant work experience, for example, if you've recently graduated, move your Education section above Work Experience.
You can then add a "'personal projects" section under your work experience section. List some technical personal projects you've done that demonstrate knowledge in key domains. Here's an example:
"Personal project: Algorithmic Trading Bot
- Designed and implemented an algorithmic trading bot in Python, leveraging financial APIs and machine learning models to make data-driven trading decisions.
- Achieved a 15% annualized return on investment (ROI) in a simulated trading environment."
If you don't have any personal projects worth mentioning...then create some! They not only help you demonstrate technical skills but also show you are someone who has a genuine passion for your field, and enough initiative and organizational skills to start something yourself.
Ready to start writing this section? Use the tips below to keep you on the right track.
DO:
- Use reverse chronological order, putting most recent employment at the top
- Add a "personal projects" section if you don't have much relevant work experience
- Write in the third person, but leave out the pronoun. E.g. ("Led") is better than "I led").
- Use past tense verbs, even in a current role. (e.g. "Led, Coordinated, Executed")
- Consider including the programming language you used for each project (Google's recommendation)
- Describe your actions and what they achieved
- Include metrics to quantify what your actions achieved where possible
- Study the language of the job description and where appropriate, match it
- Make sure you’ve naturally included several relevant keywords
DON’T
- Be shy and humble. Now is not the time!
- Just put your responsibilities
- Be vague
- Go so overboard with numbers that it looks like a math problem. It still needs to be easy to read
- Include lots of buzzwords just for the sake of it
3.5 Step 5: the Education section
This section should be extremely concise and clear. Hopefully your educational achievements can do the talking for you, as all you can really do here is present the necessary information with the right level of detail.
Let’s take a look at what it should look like.
Note that if you have recently graduated and only have internship experiences instead of relevant work experience, this section should follow the Personal Information section, and you may want to go into a bit more detail. Otherwise, you can include it after work experience.
Follow the tips below to make sure you get it just right.
DO:
- If you have multiple degrees (e.g. a BA and an MBA), you should write a subsection like the one above for each degree, starting with your highest level of education first (e.g. your MBA)
- For each degree, include the name of the degree, university, and dates in the headline. If you’re a recent graduate, you can also list any subjects you have taken that are relevant to software engineering.
- List your grades (e.g. GPA) as well as results of other standardized tests you have taken (e.g. SAT, GMAT, etc.) that demonstrate your intellect
- Detail any awards and scholarships you received at university level and most importantly how competitive they were (e.g. two awards for 1,000 students)
- If you don’t have much tech work experience you might want to include tech bootcamps (e.g. General Assembly) and link to your projects, or online courses (e.g. Udacity)
DON’T:
- Panic if you don't have a degree. You don’t have to have gone to college to get into a FAANG company. Instead put your high school grades and any relevant educational qualifications you gained after school
- Include high school experience if you've already graduated
- Include your thesis / dissertation unless you're a fairly recent graduate, in which case you should summarize the topic in a way that's VERY easy to understand
3.6 Step 6: Awards and Leadership section
We've labelled this section "Awards & Leadership" instead of "Extracurricular" section for two reasons:
1. Google uses it as its recommended resume template (see here)
2. Extracurricular activities are less important for technical roles like software engineer.
The more experience you have, the easier it should be for you to find two or three strong bullet points that demonstrate leadership (outside your day-to-day work) or awards.
If you haven't won any awards or can't think of any strong leadership examples outside your day-to-day role, then consider leaving out this section entirely.
DO:
- Put awards in context. E.g. "1st out of 22 applicants".
- Consider leaving this section out if you're lacking content.
DON'T
- Use awards from school or university if you graduated more than ten years ago
- Include weaker achievements (e.g "employee of the week") just to fill space
3.7 Step 7: Additional Skills & Interests section
"What I really hope to find is a list of technologies you’ve listed in which you are both technically sound and prefer working in." A software engineer recruiter (Source: Quora)
Additional tips:
DO
- If you need to save vertical space, list skills in sentences rather than bullets
DON’T
- Include generic, uninteresting things that everyone likes doing, like “watching films” or “hanging out with friends,” as interests
- List basic skills that almost everyone has, such as "Google Docs" or "MS Word".
3.8 Step 8: proofreading and feedback
Don’t skip this step! Use a grammar-checking tool and then proofread until it’s perfect. This is harder than it sounds because multiple reviews and tweaking after the initial proofread can easily create new hard-to-spot errors. The only solution is to proofread again after each tweak.
We recommend saving it as a PDF file unless the job description says otherwise, and checking it opens properly (with the correct formatting) on a Mac or PC.
Receiving feedback is also important. Share it with a friend or partner, and they’ll be very likely to see mistakes that you haven’t noticed. Of course, if you can share it with an experienced tech recruiter / interviewer, that can give you a big advantage over other applicants.
DO
- Proofread from top to bottom and then read it in reverse to check spelling
- If you’ve tweaked it, proofread again before sending
- Check the file opens properly on Mac and PC
- Get feedback on it before sending
DON’T
- Send it with typos. Your resume is your product!
4. Your software engineer resume checklist
Almost ready to send your technical resume? Use this checklist to make sure you’re following the best practices we’ve recommended above.
If you can answer “Yes” to every question, then you’re ready to send it.
General
- Does your resume present you as the type of candidate the job description is looking for?
- Does your resume contain the keywords in the job description in a natural way?
Layout
- Do you have the experience to merit that many pages?
- Is the formatting 100% consistent and neat?
- Is there enough white space to breathe?
Personal Information
- Have you checked your contact details are correct?
- Have you listed your programming languages?
- Have you linked to any open source contributions or technical personal projects?
Work Experience
- Have you talked about your actions rather than your responsibilities?
- Have you quantified the impact of your actions, preferably using the X,Y, Z formula?
- Have you demonstrated a range of relevant skills?
Awards & Leadership
- If you graduated >10 years ago, are your examples post-university?
Skills & Interests
- Have you listed all the programming languages, relevant software and tools that you’re familiar with?
- Are your interests in some way relevant to the role or do they at least add some personality to your resume?
Proofreading and feedback
- Have you proofread since you last edited it?
- Have you received feedback on your resume from a few different people?
- Have you saved it as a PDF to make sure it displays correctly on all devices?
- Have you emailed it to someone to test if they can open and read it easily?
Did you say “Yes” to every question? Well done! If you’ve used all the tips in this article, then your resume should be in good condition and will give you a fighting chance of getting that interview.
5. Is your resume truly outstanding?
If you're going for one of the top tech jobs, having a resume that's "fine" may not be enough. Getting your software engineer resume from "fine" to "outstanding" usually requires feedback from someone who really knows their stuff - as in an ex-recruiter or hiring manager at one of the top companies.
We know it's hard to get access to those types of people. That's why we've created a resume review service, that allows you to get immediate feedback on your resume with a top recruiter/coach of your choosing. Take a look!