When you're looking for your first job in a new career, having the right resume can be the difference between landing your dream role, or not even getting to speak to the company.
But how do you get taken seriously (and make yourself look good!) when you're just trying to break into an industry?
This guide will give you a detailed, section-by-section walkthrough of how to write your first developer resume. It will cover what to include, what to leave out, and how to structure each section.
It's aimed at new software developers without professional experience, and especially those changing career from a non-traditional background.
In this guide
- What does your resume need to do?
- Who does your resume need to convince?
- General resume best practices
- Main sections to include
- What NOT to include
- Free resume templates
What does your resume need to do?
The purpose of your resume is to represent you before you interact with a company in person. And you often have just a few seconds to make a good first impression.
So what does this mean?
Your resume needs to showcase your skills in a clear, scannable and visually appealing way. When you have no experience, there are several key techniques you can use to draw attention to the most relevant information (while staying honest about your background).
So, your resume is not solely responsible for getting you hired, but it does need to get you through that first stage of the process.
Who does your resume need to convince?
The initial point of contact for your resume might be an online jobs page (which I wouldn't recommend; more on that later), a recruiter who you've connected with on LinkedIn, or a hiring manager while they decide whether to move you forward in their interview process.
These different audiences will be looking for different things.
Online jobs portals
These are sites like Indeed, or the jobs pages of companies using systems like Greenhouse or Lever.
These portals often have automated screening of resumes that are uploaded. They look for relevant keywords, and could determine whether your resume even gets seen by a human. So, including the right keywords in a machine-readable format is important here.
Pro tip: If you save your resume as a PDF, make sure you can select the text with your mouse—this means it will be readable by automated systems too.
Unless it's a very small company, your resume will usually be reviewed first by a recruiter. They will be scanning it for relevant keywords and experience to determine whether you're a possible candidate for the position.
Unlike machines, recruiters will also likely base their decision on how professional your resume looks, so this is where clarity, layout and overall design are important.
If you pass the recruiter screen, your resume will make its way to a hiring manager. This person will likely have an engineering background, and therefore more technical knowledge, so will be looking for more than just keywords.
This is where explanations of your projects and experience come into play. Hiring managers will want to know not only what tools and technologies you've used, but how—and why you used those specific ones.
General resume best practices
- Keep it to 1 page. When you have no professional experience, you don't have enough content to justify a longer resume. Anything you might put on a second page is likely not relevant to the role you're applying for.
- Put the most relevant content first. This goes for overall structure, and for the content within each section. For example, if you don't have relevant education, don't put your education at the top—put your (relevant) skills or projects first. Then inside each section, list items in reverse chronological order. This means your employment section should list your most recent job first, and so on.
- Double check for errors. You would be surprised how many professional resumes contain basic spelling or grammatical errors, inconsistent capitalization, or typos. If this kind of thing isn't your strong suit, get a friend to proofread your resume for you. One or two mistakes probably won't cost you a job, but it doesn't give a good impression of your attention to detail.
- Keep the design modern but professional. One or two accent colors is fine, but no more than that. Stick to readable fonts in legible font sizes. Use obvious headings and leave some white space for breathing room (if you cram the page with tiny text, it won't be easily digestible).
- Format it as a PDF. This ensures a consistent layout for anyone viewing your resume. Text files (like .doc or .docx) render differently in different programs, so you risk your formatting looking broken for other people if you use them.
- Consider using a template. Not everyone is a designer, but luckily anyone can get a good-looking resume by using a template. There are hundreds of free options available online, that can be edited in Google Docs and exported to PDF.
Main sections to include
This is the core structure of a 'no experience' career-changer resume:
Let's look at each section in more detail.
This is the section at the top of your resume which shows things like your name, contact details, and social links. It's often boldly formatted to stand out and grab attention.
It should include:
- Name. This should be the name you are known by, and would like to be called.
- Job title. Something simple like 'Software Engineer' is best, but you can be more specific, e.g. 'Front-End Developer' if you know you want to specialize in a particular area. It doesn't matter if you haven't had this as an actual job title yet. Avoid words like 'junior' because this could be interpreted negatively before the reader even gets to the rest of the content—let them figure that out for themselves.
- Phone number and email. This is the only information a company should need to get in touch with you. Make sure they're both accurate, and use a professional-sounding email. Gmail is fine, but ideally your email address features your name, and isn't something like 'email@example.com'.
- Social links. Stick to relevant ones—developers should generally include GitHub, LinkedIn, and your personal blog/portfolio/website if you have one. A portfolio site can be a great way to show off your skills, particularly if you're a front-end developer.
- Citizenship/work authorization. If your resume implies you're an international candidate (e.g. you list jobs or education from abroad), it can help to mention if you are authorized to work in the country where you're applying for jobs.
Optional extra: profile
Your header area could also include a profile, overview or objective paragraph.
It's not required, but you can add it if you have space, or a template that includes one. It's basically a sentence or two to summarize who you are and what you're looking for. Keep it short, and use it to draw attention to one or two specific points.
Because you have no experience, you should focus on your enthusiasm, willingness to learn, and what direction you hope to take your career (you can also include any interesting relevant experience you do have).
Pro tip: Avoid generic descriptors like 'results-driven', 'detail-oriented' or 'passionate' without qualifying examples. Anyone can claim these things, so they are meaningless if you don't also demonstrate how they actually apply to you.
Some examples of profile statements that show specific interests and direction:
Motivated software engineer with a background in journalism. Seeking a role in a fast-paced startup where I can continue to develop my backend engineering skills using Python and Go.
Front-end developer with 7+ years of design agency management experience. Looking to grow my technical skill set with the goal of making use of my senior leadership abilities in future.
This section is where you list the skills you've learned that are relevant to your future job as a developer. Most people list technologies here (programming languages, frameworks etc.) but I also like to include things like any agile methodologies I've used, or collaboration skills like pair programming or reviewing other developers' code.
This section is actually optional, but I recommend including it as it's a good way to communicate your experience to the reader in a format they can digest easily—even if they're just quickly skimming your resume.
If you do include this section, keep it focused (don't include too many skills) and be sure to group skills in ways that make sense. For example, if you're looking for a full-stack role, you might list technical skills arranged by stack area (so into front- and back-end sections). If you're just focused on the back end, you might have separate sections for programming langages, frameworks and databases.
How to present skills on a resume
Skills often work well as a more graphically interesting section on your resume. Simple bullet points are fine, but many resume designs display skills in a table or pill/chip format.
You'll also notice that a lot of templates include skill charts or star ratings for skills, the idea being that you can grade yourself based on your proficiency in each skill. These might be pretty, but I actually don't recommend using them, for the following reasons:
- They're ambiguous. What are these bars relative to? What does each rating mean? How does a 4 out of 5 star rating for CSS with no other context show anyone that you have the ability to do the job?
- There's no proof or validation. People are bad at estimating how proficient they are at things. Describing a real example of how you applied the skill would be more informative (and let the reader decide for themselves whether your skill level is enough) than giving yourself an arbitrary chart rating.
This section should be the main focus of your resume. It's where all the most interesting and unique information goes, and is your chance to add the kind of detail that's going to make you stand out.
I use the title 'Experience' rather than 'Employment' deliberately. As a self-taught career changer, you might not have had a job yet, but you can (and should) use this section to showcase all the relevant experience you do have.
So what can you include here?
- Projects. If you know how to code at all (which hopefully you do if you're at the stage of applying for jobs), list your most interesting personal projects here. It's great if you can tell a story with each one: why you built this project (what problem it solves), how you approached it, which technologies you used, and why you chose those ones in particular to solve the problem.
- Open source contributions. This is one of the best ways to get 'real' experience when you haven't had a job. There many large open source projects all looking for new contributors, and it's a great way to work with experienced professional developers, on mature codebases, that operate just like the kind of projects you might work on when you land your first job.
- Freelance work. Another great way to get experience as a new developer is to take on a few small freelance projects. Maybe you had a family member with a small business who wanted a tool or website, or perhaps you found some projects through a freelancing site like Upwork. This type of work isn't usually well paid, but it can be worth it when you're just starting out because it's real experience you can list here.
- Hackathons. You might have participated in events like hackathons or coding challenges, and often this means collaborating in small groups. That's all valuable, relevant experience you can absolutely put on your resume.
If you don't feel like you have enough experience to even fill out this section, I would recommend trying to do some more of these types of projects before applying for a job. You'll have a much easier time getting someone to hire you once you have at least some way to demonstrate you can do the job.
How to present experience on a resume
To keep the information digestible, use clear headings and short, snappy bullet points rather than walls of text.
The basic structure of each experience entry should be:
- Role, Title or Project Name
- Date (range or single month)
- Bullet points with extra detail
Here are some examples of how the first three items could look:
Open Source Contributor, [Name of Project]
June 2020 - present
Contributed several bugfixes which led to an improved user experience by... [add more detail about what you did]
Participant, [Name of Hackathon]
Working in a team of 4, we created an app... [describe what your app did and what role you played]
Personal Project: CoffeeWalks
Built a React Native app to guide me on walks around new cities, ensuring I pass at least one coffee shop en route.
If you completed multiple freelance projects, you could group these all together under one 'role' like this:
Freelance Front-End Developer
Web Design & Development, Joe's Pizza
Created a new website for this small business to replace an outdated design.
Website Development, Stem & Petal
Developed a responsive, image-heavy website using React for a local florist.
Blog Development, Prism Marketing
Added a blog to this marketing agency's website using WordPress.
For each entry, you then want to add a few bullet points going into more detail. Don't just say what you did, but talk about the impact, outcomes and reasons for your choices.
Another way to think about this is every time you state something you did, explain more by answering the question: so what?
For example, this:
Wrote unit tests using the Jest framework.
...is not as good as this:
Introduced unit testing with the Jest framework, which reduced the need for manual testing, saving around 2 hours per week.
Pro tip: Consider introducing some more advanced concepts in your projects like testing, monitoring and performance (and then mention them in your resume). Most people with no experience don't do this, so it will make you come across a lot more professional than the average entry-level candidate.
If you're wondering whether to write your bullet points in the first or third person, it honestly doesn't matter. I've seen both. It's not necessary for a tech resume to sound super formal, so just pick whichever you prefer and be consistent.
Where to put previous career experience
If you're changing career, you might have several years of employment experience that you don't know what to do with. Do you just list it in with your tech experience? Should you even include it at all?
This depends on how relevant the work is. If you've had roles where you dabbled in something technical, like basic coding or SQL or data analysis, I'd include it for sure (talking up anything that sounds particularly relevant to your new career, of course).
If your past experience is not at all relevant to software development, I'd group it under a single entry at the bottom of your experience section. Say you had a few jobs in fast food restaurants over several years, that single entry could look like this:
Fast Food Worker
June 2017 - May 2020
Maintained high standards of customer service across various roles in the food service industry, before retraining as a software developer.
I put this section last for a reason. If you're a new grad with a CS degree, you probably want to put this at or near the top or your resume. But as a self-taught career changer or bootcamp grad, your practical experience will be more valuable than your education in your job search.
Although it might be at the bottom of your resume, this section is still important, particularly because you likely at least have some relevant education—even if not a STEM degree.
So what should you put here?
- Any degree(s) you do have. Even if you studied something completely non-technical, degrees you earned are still a part of your professional journey. Completing a degree also shows that you have skills beyond just the specific content you covered.
- A bootcamp (if you did one). This has been a subject of some debate since the coding bootcamp boom, with some people even suggesting bootcamps could have a negative impact on a resume. Personally, I don't advise trying to hide your bootcamp, but don't expect it to carry any pedigree either—the value of a bootcamp is in the skills you learned, not the fact you attended.
- Relevant online courses. These can show you're dedicated to and capable of learning technical subjects via self-study (an important skill for software developers), particularly if you've completed some of the more academic ones from platforms like Coursera and edX.
What NOT to include
With just a single page to work with, you need to use space efficiently. Here are a few things that people often include in their resumes which don't need to be there.
People viewing your resume to assess you as a candidate don't need to know your full physical address. In fact, companies generally only need this information when they've made (and you've accepted) a job offer. So just provide it when they ask for it.
You may also want to share your resume publicly on the internet (e.g. on Twitter or a personal website). If it has your home address on it, that could be a security concern.
There are valid reasons you might want to show your location, such as if you're local to the position, and want to indicate that you could start quickly. But in this case, including just your city is fine.
References are the people your new employer can contact to verify your track record and employment history. But they are also not relevant to the initial candiate screening process, and only needed at a later stage—usually either just before or after the company has decided to make you an offer.
Not all companies even use references, so they'll ask you for them if they need them.
Many resume templates include a photo because it looks nice in a layout—but it's definitely not required, or even common, for a software developer resume.
This one is actually optional, but I advise against it for a couple of reasons: at best, it doesn't provide any necessary information (what you look like should not influence whether you pass a resume screening). At worst, it could contribute to bias and discrimination.
Free resume templates
- Canva resume buider & templates: 8,000+ beautiful templates, which are also easily customizable through a great UI (and professionally designed—no one will ever guess you used a template!).
- Official Google Docs resume templates: Includes 5 very basic resume templates, but you know they will work with Google Docs, and 3 of them have a matching cover letter design if you need one as well.
- ResumGO resume templates: Modern, well designed selection of templates, many of which are formatted for Google Docs. A lot of them include space for a photo, so if you don't want to add a photo, either pick one where you can remove the photo without affecting the design, or filter by 'No Photo'.
- Resume Genius resume templates: Large selection with lots of different styles, though not all have attractive designs. Check the Modern or Creative sections for some of the better ones.