Resume Tips for Software Engineers in North America

Years ago as an international student preparing my resume to get my first job in Canada, I had a lot of questions and I did search a lot on how to make a resume that fits Canadian employer's requirements and style. Things have changed. Eventually, I got offers from some high tech companies and landed in a good job and now I am interviewing candidates who are like I was a couple of years ago. After looking at more and more resumes, I decided to share my experience here with a hope that will make someone's life better.

For whom this article is for? Well! for anyone looking for a new job in Canada. Especially if you are  new immigrant who has no idea about what Canadian employers are looking for, this article is tailored to your requirements. Though my experience is limited to Canada the companies I applied for are mostly US-based companies so I hope it can be applied anywhere in North America. This article is targeting only those who are in the software industry. I don't know how much it will overlap with other industries. The rest of the article is divided into two topics: 1. Resume Sections, 2. Resume Format. The first topic covers what to include and not to include in your resume and the second topic provides some formatting tips to make your resume get you a call from the recruiter.


Personal Information

The very first thing a recruiter sees is your name. Therefore your resume should start with your name. I don't think anyone would put their name at the end. Therefore, let's move on. Do not include your photo. I know in some countries, the candidate's photo is recommended but in Canada, it is not expected and avoiding it will reduce prejudice based on your age, color, sex, and appearance. Also do not include your age, date of birth, ethnic background and any other unnecessary details. Only include your address, phone number, email address, LinkedIn profile, and your GitHub profile (only if you have a good one with a decent number of repositories and open source contributions). If you are applying for a job in another province and if you have your friend/relation close to the company you are applying for, change the address to your friend's address because it may increase your chance to pass the initial filtering. However, the address does not play an important role in the recruitment process of big tech giants like Amazon. For example, Amazon will reimburse all your interview expenses including your transportation and accommodation costs. They have the potential to recruit talents from anywhere and paying them a relocation package. On the other hand, small to medium size companies will ask you to cover your own expenses or simply select someone close to them. If you did change your address in the resume and got an offer, before starting the background check process, let the recruiter know your address as in government records because you may have to prove your living address for the background check process. Use a Canadian phone number and make sure that your email address looks professional. Recruiters view your resume on their computer so create hyperlinks for your email, LinkedIn and GitHub. If you have a tech blog or an online portfolio, include a link to them after your LinkedIn and/or GitHub profile. A career objective is not expected in software industry. Instead, save the space for providing detailed statements in the Experience section.


The second thing a recruiter wants to see is how good this person is in necessary skills. For example, if their code is written in Java, it's nice to see someone who knows Java though most of the high tech companies don't look for a specific language as long as you are good at some languages. This section is not only for languages but also for computer science fundamentals. How strong are you in Concurrent Programming, Algorithms, Object Oriented Design, or Distributed Computing? List it in your skill set. As an interviewer, I also like to see how good you are at the listed skills. Therefore, it is better to divide the section into three: Proficient, Working, and Basic (or use some other commonly used terms which align with these). The Skills section also helps your resume to pass through the initial filter of Applicant Tracking Systems (ATS). More about passing through ATS is later in this article.


Are you a fresh graduate, list your Education next. If you already have some Professional Experience (what industry means by "Professional Experience" is full-time and field-related employment in a company), experience comes before education. If you are just graduating and do not have a lot of Professional Experience, feel free to include any internships and coding competition/hackathon experiences under the experience section but move it below Education.

If you do not have several years of experience but you have a Computer Science or Software Engineering related degree, try to keep this information on the first page. Why? a candidate with a computer science degree is expected to have a good fundamental. Is your degree in a totally different field but you eventually got into the software field? I would recommend moving it to the second page. Always having a degree adds value to your profile but having a Chemistry Degree on a software engineer's resume doesn't give a better impression. Don't take it personally. You might change your career and you may really be doing well. However, unless you don't have a strong professional experience section, your degree may raise the question "How he/she gonna implement that algorithm?". As you are getting more experience, your experience outweighs your degree. If you have years (around 5+ years) of experience, your degree doesn't play an important role in your resume and you may need more space to list your experience. Therefore, feel free to move it to the second page but still keep this section.

Under the education section, list your diplomas, bachelors, masters, and PhDs along with the university, duration, GPA, class, and thesis title. If you have higher education, always list the highest and recent degree first. Even if you have a Ph.D., still include your bachelor's degree because it is the one showing your Computer Science foundation. If you have a bachelor's degree, diplomas are not required. High-school scores are absolutely not necessary here.


Coming to the critical section: "Experience". This is where you must focus a lot of attention. Clearly specify the company you worked for, your role, the start and end dates, location and your responsibilities in chronological order. List your responsibilities and achievements in bullets and use action verbs to explain what you did. For example, use terms like Developed, Implemented, Lead, etc. Focus on every sentence you add here and make sure that they follow the template of "Accomplished X as measured by Y by doing Z". Try your best to quantify your statements and highlight your achievements and/or the technologies you used using bold letters. Quantifying your results brings numbers in your statements which grasp more attention than words. For example, saying "Improved the response time of the inventory service by 60% by designing and implementing an LRU cache" sounds better than saying "Implemented a cache in the project" and the former statement also tells the recruiter that you are result driven and you measured your implementation.

Here is an excellent video from Google on how to prepare your resume. If it works for Google, it works everywhere else.

I know it is hard to quantify some features you developed as a software engineer. You may need to give an approximate number if you don't have an exact number but almost all accomplishments can be quantified. If you can't quantify it at all, replace it with achievement. For example, suppose you developed a Proof of Concept (POC) of a product, you may not have a number to provide. In such a case, you can say what is the benefit to the company as in the following statement: "Developed and demonstrated a fraud detection POC using the stream processor for the largest bank in Canada and convinced them to buy our solution". Do not list everything you did in your work. Only list the most important achievements which can show exhibit your skill and relevant to the job you are applying for. For example, you might generate some testing data as part of your responsibility but you might also develop some cool features in a product. Focus on what you are proud of instead of listing everything.

Another common mistake of people with 10 - 20 years of experience in listing everything they did since their first job. This will make the resume longer to read and most of the time recruiters don't even turn to the third page. If you have many years of experience, mention that in the resume but only include the most recent and/or most relevant jobs in the resume. Keep all your experience in your LinkedIn profile and let the recruiter know that he/she can check your LinkedIn for more details. The purpose of a resume is not telling your history but highlighting your skills.


If you have less experience or you are just graduated this section is critical to have. List some projects you developed which are complex enough and showcase your talent. If you are an open-source enthusiast and contributing to open-source projects, list them here. Same as the experience and education sections, include the duration of each project along with the project description, your responsibility and the technologies you used. If you do not have a lot of experience, keep this section on the first page. If you already have enough professional experience, move it to the second page. I've seen some resumes including contribution to some unknown projects with no community behind it as their open-source contribution. Open source contribution is great to have but the project you have contributed to should be relevant to the job or should have a lot of people using it/talking about it. I once came across a resume with an open-source contribution to someone's TicTacToe game written in Java. It was clear that the candidate fixed a bug in someone's personal/academic project and claimed it as an open-source contribution. Are you contributing to Apache Software Foundation projects? include it in your resume. Are you contributing to famous Linux projects? include it in your resume. If it is an unknown project, just ignore it.

Publications & Patents

Publishing research papers in a highly ranked conference or journal and having patents adds more value to your profile in high tech companies like Amazon and Google. If you are applying for web-development in a medium-size company, they may not care much about it. Here the quality wins over the quantity. If I find someone published a research paper related to the work, I always ask for more details about it. It is good to list the acceptance rate of the conference and the conference date (in Month and Year format).

Honors & Awards

Honors & Awards can be the last section of your resume. If you are a fresh graduate, include if you were listed on the dean's list. If you were awarded in any coding competitions, list them here. Those who have some professional experience, list any awards you received at work to show the recruiter that you were appreciated for your work.

In some countries, references are expected in the resume. In Canada, you will be asked to provide references if required. Therefore do not include the "References" section in your resume. There are some more don't dos at the end of your resume. Do not sign, do not date and do not authenticate. Is there anything else I can add? It depends on how much space you have left in your resume. If you have a lot of space, include your Certificates but it is better to utilize the space to shine the Experience section.


Unless you are a fresh graduate, do not target a single-page resume. Pick a two-page template and add your information.Use a simple resume template or make your template that is simple but unique in such a way that your resume stands out to the recruiter. However, do not make your resume fancier because it may look unprofessional and may not pass through ASTs. Make your statements as compact as possible without losing the "Accomplished X as measured by Y by doing Z" format. After including all your information, see how many pages it took. If it is more than two pages, reduce the information and make it two. If it is more than a page but it takes only a few more lines on the second page, try to fit it into a page. A simple but effective template is given below.

Do not reduce the font size below 10pt to meet the number of pages requirement. Keep enough line space and use a professional font. Even in the modern electronic world, some recruiters print and read it. Therefore, print the resume in a paper and see if it is readable. Don't use rainbow colors in your resume because it makes you look less professional. After adding all your selling points, proofread your resume multiple times. Grammar mistakes and typos are not desired in a resume. If you are not a native English speaker, use some online tools like Grammarly to check basic grammar mistakes. Though Grammarly is a good tool, do not completely rely on it. Ask someone to proofread your resume for any further mistakes.

Finally the elephant in the room: Applicant Tracking Systems (ATS). Most of the tech companies use software to filter resumes. This software read your resume file and extract your personal information, keywords, experience, and education and fill them in a database. Later they check for required keywords in your resume. Resumes with no or less matching keywords are not even seen by a human recruiter. Though several companies use such software, the software is not perfect in reading fancy resumes. This is the main reason why job seekers are advised to go for a simple resume template. I heard that mose of these software read and understand Microsoft Word file better than a PDF file. I find PDF more portable and do not have a Microsoft Word copy of my resume. However, if you use Microsoft Word to draft your resume, it doesn't hurt to send both docx and pdf formats to the recruiter. Finally, use an ATS tool like CVlizer to parse your resume and make sure that the AST correctly interpret your resume. If there are any issues in extracting your data using an AST, adjust your keywords and the format. For example, the company name WSO2 wasn't detected by CVlizer as a company name but WSO2 Inc. was detected as a company name.

Once your resume is ready, keep updating it and tailor it for the job description by providing job-relevant experience and skills. Send it to the recruiter and hope for the best. Please remember that there is no ideal resume. If you have any questions or suggestions, please comment below. I will try my best to help you.
Next Post »


Write comments
Joseph Mable
August 4, 2021 at 7:39 AM delete

Research on everything you can find about the company that called you in for the interview!


Contact Form


Email *

Message *