There are a lot of opinions on resumes. Many of them conflict with each other. Here I'll write about the things I look for when critiquing/writing resumes, but keep in mind it's just my own preference (and I'll try to explain why I feel that way). The main goal of a resume is to advertise yourself as well as possible, so if you feel you can do that better by not following my advice, then go for it!

Why resumes are important

This is only the first step to applying for jobs. If you have a weak resume, you don’t even get to the interview part (even if you're super qualified!). So having a good resume is very important. Folks that are hiring often spend only a few seconds looking at your resume, so knowing what they're expecting to see and how to impress them is essential for getting your job.

Key goals

  • Goal: prove you're qualified and would be nice to work with
  • How you'll do it:
    • make your resume easy to scan
    • clearly and concisely demonstrate your qualifications

Start early!

Start on your resume at least a month before applying for jobs so you have time to refine it to be awesome.

Get people to critique your resume

This is a verrry important step and why it's good to start early. Go to resume critique sessions if your school holds them and ask your peers or more folks to look over your resume. Post your resume on Facebook and just keep asking people to edit it. I know it's scary to expose yourself like that, but having other people look over your resume is so so useful and helpful. If you can push your comfort levels a little, I think it will be worth it. If other students are critical of your resume, it can be a little disappointing but otherwise, no harm is done. If a recruiter is critical of your resume, you won't get the job and won't even know why!

Sections in your resume


  • Here you'll want to put your name, email, and GitHub (if you have one)
  • If you have a website, link to it
  • Many people put their phone number here, but I don't like being called out of the blue so I don't put my number on my resume - if they need it they can email me and ask for it
  • Don't put your address - no one will mail you in this day and age, and it takes up a bunch of space
  • If you're early in your education, don't put your term/year/graduation date in the header - it gives you less cred right off the bat (you can put it in the education section lower down)

Work experience

  • This should go at the top if you have relevant experience
  • If you have some work experience, but it's not relevant to tech, you might want to put it on your resume anyways. Put anything tech related above your work experience, and if there's still a bunch of space left, talk about the jobs you've had in the recent past and the skills you used there. There are probably things you did that have skills that translate to working a tech job - leadership, navigating new situations, problem solving, working under pressure, etc.


  • Where this goes depends on how well known your school is and how much it'll help sell you compared to your other projects. In general, the order of sections on your resume should go from most impressive (and therefore likely to get you to the next stage) to least impressive, since whoever is reading your resume will likely scan it from top to bottom and might make a decision before they get to the bottom
  • In general, even if you're from a top school, the name of your school is less interesting than other things you've done
  • If you're applying through a school specific application process (e.g. Waterloo's coop system), definitely put it near the bottom. Everyone has the same education which not only means that it doesn't make your resume stand out at all, it's basically redundant information


  • If you don't have work experience, work on some small tech projects you can highlight at the top of your resume as proof of your skills.
  • See the page on side projects for more info
  • If you have a lot of projects, pick your favourite 3-4 for your resume; it might seem like having 7 projects looks impressive but unless they're all super impressive it just looks like filler - on your resume you always want quality over quantity

Awards / Scholarships

  • If you have any impressive looking awards/scholarships, definitely mention them

Volunteer experience

  • This is especially helpful if you have less work experience
  • In my first year of school, I volunteered at some CS workshops (less than a day's commitment each) and put those on my resume

Small section for your other interests

  • I like to put that I sing in choirs and involved with certain clubs - it's important to me to have a life outside of CS-y things, and many employers appreciate this too. Some will talk about them a bit during interviews to break the ice!

Note: You don't need all these sections and don't have to do them the way I advise!! Think about what skills you have that you can bring to this job, and find the things in your life that most prove you're qualified and figure out the best way to organize those things on your resume. Everyone is different, so everyone has a slightly different resume that will advertise them best.

I'd recommend checking out other people's resumes too, as some of them have sections in their resumes that I don't personally use - these are just the sections that I like and work best for me.

Show don't tell

As much as possible, don't list your skills without context proving you have them. Anyone can write "good communicator" on their resume, and unless you talk about something you did that needed very good communication skills, that line is essentially useless. In general, just don't list "good communicator" as a skill and instead talk about your communication skills when you talk about your experience. This is also true for a lot of soft skills such as "effective team member" or "strong personal leadership".

Similarily, show that you know programming languages by mentioning them in the work you've done with them and don't just list a bunch of them at the top of your resume. It can be useful to have them all in one place of course. But ideally, languages/technologies/acronyms that you put in a list should also appear elsewhere on your resume.

We say ideally because you might have dabbled in some new technology just to try it (e.g. some framework, language, programming tool, API, etc). You might not have completed a project with it and don't know how you'd write about it on your resume. However, you probably still learned something from it and that still signals to the employers that you can learn on your own which is great (see side projects). It's fine to include them, as long as you are able to explain how you've used them during an interview if asked. In general, you should be able to talk about anything on your resume during an interview.


One page is generally considered best, but I've had a two page resume in the past and know plenty of people that have done well with two page resumes. In general, I'd say if you have a two page resume, you should make sure it's okay if they only read the first page (i.e. the second page is like "bonus extra stuff about me").

I like the idea of the one page resume because (1) people might not look at it long enough to even see the second page and (2) if you spread out your information accross two pages, you'll probably have less concentration of the good stuff. If you have a 2+ page resume, pick your best selling points accross those multiple pages and put just those on one page.

In general, it might seem like writing more will make you seem more impressive, but if you write tons and tons only to fill space, it won't be impressive because it will be obvious that it's just filler. Short resumes clearly and concisely demonstrate your qualifications and are easier for a recruiter or potential employer to scan and understand. You do not want to dilute your impressive accomplishments in a sea of boring details!

How do you know if you're being too verbose? If you do have a two-page resume, you should definitely at least do the exercise of shortening it until it fits into one page. Just think of it as a way to practice being concise, and ask your friends to cross out what they think is the least interesting if needed. You might not like the end result and decide not to keep it. That's fine. But you might also find out that it works just fine.

For more tips on shortening resumes, see resume information density.

How to talk about things

  • use action verbs - they help describe the skills you've used, and starting bullet points with them helps keep your descriptions short and powerful - Google "action verbs" to find a bunch of lists of words to use
  • add dates when possible - for work experience, projects, volunteering, etc.
  • bullet points should be concise and easy to scan, so ideally only one line long and rarely longer than two lines
  • if you have more than 4 bullet points for one section, it'll become a big block of text and will become harder to scan as well. You should rarely need that many bullet points



  • use periods at the end of bullet points or don't, but don't mix them
  • make sure your dates are in the same format (e.g. Aug 2017 or September '17)
  • in general, the way you format each section and the way you talk about things should be consistent - this makes it easy to find information and to scan your resume
  • in case you're thinking this right now - yes I could have better consistency in this guide because I'm not alawys doing the things I literally just mentioned ...but it's a lot harder for a thing this big and I guess I don't care enough ^.^

Grammar: - It matters a lot - One more reason to get your resume reviewed by peers

Keep it simple:

  • The more different formatting styles there are (bold, italics, different text sizes, different fonts, different colours, use of capital letters) the more work your brain does to make sense of it all. Having a few styles is helpful for differentiating headings/bullet points/important words (if you want), but keep it minimal or your resume becomes harder to scan

I'm all about hyperlinks everywhere.

If you have projects on GitHub (if you don't, but have proejcts, make an account and put them on GitHub!) link to it at the top of your resume, but also link to your project in that section on your resume.

If you've written a blog post about a project, link to it. If you have a website, link to it at the top of your resume. Add your linkedin. Add your email. Make it all clickable! If you worked at a company that has a website, link to that too.

If you really want someone to be able to visit your link, even if they've printed your resume, make a short link (so it's easier to copy out) and explictly paste it in your resume. In other places you can just hyperlink text as bonus information if someone happens to hover over that area.

Do not overoptimize

Although resumes are super important, there will be diminishing returns on the amount of time you spend optimizing your resume. If people don't seem to be making major suggestions anymore after a few rounds of review, maybe it's time to move on.

Don't forget: the advice presented here is about presenting your existing accomplishments effectively. But time that you spend optimizing your resume could also be spent generating stuff to put on your resume, which is more valuable in the long run! (learning a new language, making a project, etc)


Make sure you can print your resume

  • Margins should be wide enough that things aren't cut off.
  • If you use colour, make sure it prints clearly enough in black and white.

On how old your points can be

Once you're 2 years into university, I'd say don't talk about high school at all unless (1) you have very few things to say about your last two years or (2) your high school accomplishments are extremely impressive

More resources about resumes