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. 3 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.
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 workng 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.
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 Resume example 1 (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.2 Example resume 2 (Google, front end developer)
The resume below is from "Lana". It got her interviews for a front end developer role at Google.
Here's our feedback on this resume:
- 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.3 Example resume 3 (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 a powerful action verbs such as "Created", "Designed", "Fixed", etc.
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.
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 is the job description is looking for. Which skills will be most crucial for the role? What are the keyords 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 or 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.
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
- 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)
- 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:
- 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
- Include a “summary” or “objective” section at the top (unless you have an unusual profile which 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.
- Use bigger 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
- 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.
- 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 leaving out the pronoun. E.g ("Led") is better than "I led").
- Use past tense verbs, even in 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
- 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.
- 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)
- 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.
- Put awards in context. E.g. "1st out of 22 applicants".
- Consider leaving this section out if you're lacking content.
- 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
- If you need to save vertical space, list skills in sentences rather than bullets
- 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 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.
- 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
- Send it with typos. Your resume is your product!
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.
- 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?
- Do you have the experience to merit that many pages?
- Is the formatting 100% consistent and neat?
- Is there enough white space to breathe?
- 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?
- 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 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. To get 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 type 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!