Table of Contents
- Introduction
- Part 1 - Landing Interviews
- Writing a Software Engineer Resume
- My Current Software Engineer Resume
- Reflect - Are you focusing on the right thing?
- Conclusion
Introduction
Hi everyone, it’s been a while since my last post—I hope you’ve all been doing well. Today, I want to share my journey in searching for a new graduate software engineer position here in Canada. I’ll also provide a timeline of my study process and some advice based on my recent interview experiences. I know the job market has been tough over the last year or two, and many of my fellow alumni have struggled to land interviews, so I hope my insights will help you approach your job search with more confidence.
To start, a little background about me: I’m Gabby, a Canadian citizen and recent Computer Science graduate from Western University. I completed my degree in April 2024 and was fortunate enough to secure 3 software engineering internships during my undergrad, primarily focused on fullstack development. After graduation, I took about two months off to relax and spend time with my family. I started applying for jobs seriously in mid-July and continued through to the end of September. While I didn’t keep track of the exact number of applications (and honestly, I don’t think you should either), I progressed to the final rounds with three companies and received an offer from a Fortune 500 company 🎊.
During my time off, I treated the break as an opportunity to recharge and prepare for interviews. I focused primarily on the Neetcode 150 list of questions, following Neetcode’s beginner and advanced roadmaps. In hindsight, while I dedicated most of my time to data structures and algorithms (DS&A) preparation, I’ve realized that behavioral interviews and resume preparation were equally—if not more—important. From my experience, non-FAANG companies emphasized behavioral interviews far more than Leetcode-style technical interviews, and these were often the key factors in determining the outcome of your application.
A quick disclaimer: I’m writing this from the perspective of a typical CS graduate seeking full-time employment. By "typical," I mean someone who isn’t specifically aiming for top FAANG or quant firms. There are plenty of great resources available if you're targeting those highly competitive positions, and some of the ones I mention can certainly help you get started on that path. However, the focus of these articles is to provide young professionals with the tools they need to feel confident interviewing for roles that prioritize work-life balance (WLB) at a variety of companies, not just exclusively FAANG.
Of course, working for a prestigious company that offers top-of-market TC is amazing — but please don’t feel like that’s the only option. During my undergrad, I saw a lot of "FAANGMULA or bust" mentalities in students that, in the end, only hurt the confidence and resiliency of those who didn’t land those roles.
Part 1 - Landing Interviews 🔎
Before you start sinking hundreds of hours into interview prep, it's crucial to ensure you can actually land interviews in the first place. One common cause of burnout during the job search is spending months on Leetcode and cold applying to jobs, only to end up with no interviews, feeling completely drained, and realizing you haven’t made any progress with companies that are hiring 😪. I also think this might be one of the hardest parts of the job search, so it's essential to make yourself as competitive as possible.
In Part 4, I’ll discuss a bit more regarding how networking and joining local tech communities can help you secure referrals and uncover unadvertised roles through word-of-mouth (see: the hidden job market). For now though, I want to focus on optimizing your resume, LinkedIn, and social media profiles to increase your chances of passing ATS filters and recruiter resume screens.
Writing a Software Engineer Resume
There’s a lot of conflicting advice out there about resume best practices, but here are some guidelines I strongly recommend:
- Keep your resume to a maximum of 1 page - unless you have more than 10 years of experience
- International candidates: Be sure to indicate if you need visa sponsorship or if you already have a visa and don't require sponsorship.
- Avoid listing every achievement - While professional publications and certifications are great, you likely don’t need to include them unless they’re directly relevant to the positions you’re applying for.
- Skip listing hobbies, interests, or the high school you attended (assuming you have college or university experience) — this doesn’t add any value to your application
- Don't include a professional summary - again, unless you have enough seniority to justify it
- Stick to a single-column format for your resume — it’s easier to read for both ATS systems and recruiters
If you haven’t come across it yet, I highly recommend checking out the Tech Interview Handbook. It’s an excellent resource that goes way more in depth on resume writing, and also covers how to prepare for every stage of the software engineering interview process 🫶🏼.
If you're struggling to condense your experience into concise bullet points, I completely understand — it’s tough! Writing a resume requires deep reflection on the work you did, the projects you were involved in, and the impact you had. I’ve found that many people are pretty darn good at explaining their impact verbally, but struggle to translate that into written text on paper. If that sounds like you, try using voice-to-text software to capture your thoughts. You can also ask friends to quiz you about your past internships—it’s a solid way to uncover the technologies you used and the impact you made.
Some additional tips for writing your resume include:
- If you’re stuck on what to write, start by listing everything you’ve done. It’s easier to refine from too much detail than from too little.
- Don’t hesitate to reach out to classmates, friends, or family for multiple rounds of edits on your resume. It’s normal to go through several revisions before reaching a final version.
- Don’t rely solely on friends for feedback. In my experience, close friends may hold back from being overly critical. Consider taking advantage of resources like ChatGPT, and online communities like BobaTalks (their Discord server offers excellent feedback from mentors), and CS Careers Dev (their Discord server provides brutally honest resume reviews, which is exactly what everyone needs).
- Tailor your resume to the roles you’re targeting. For instance, I’ve seen people focus heavily on including frontend development experience while applying for full-stack roles, only to be frustrated when they get rejected. Make sure your resume aligns with the types of roles you want. If you’re aiming for cloud computing roles, having certifications or licenses, like an AWS Cloud certification, could help bridge the gap if your experience is lacking.
My Current Software Engineer Resume
I think thanks to my past engineering internships, I’ve been fortunate enough to receive a good response rate from my resume, so I’d like to share the formatting and approach I use with all of you. Hopefully, it will give you some ideas and inspiration on how to write effective bullet points that follow the STAR method.
- Purple highlights - impact/result of my actions
- Yellow highlights - the action taken
- No highlights - context, situation, and/or technologies I used
You can see I used Jake’s resume template, which is super popular in the tech community for its clean, no-nonsense design. You don’t have to use this exact one, but I’d suggest sticking to a single-column format for readability. If you're early in your career, it's a good idea to put your education at the top so recruiters can quickly spot your degree and graduation date.
One thing to note: always include start and end dates for all your experiences. For your degree, the start date is optional, but definitely include the end date or your anticipated graduation date. Make sure your resume has your phone number, a non-school email, LinkedIn, and GitHub. If you have a polished personal website, throw that in too.
Common mistake: avoid listing generic tools like MS Office or IDEs you’ve used. Your resume has limited space, so focus on showcasing the key languages and frameworks you're skilled in and that are relevant to the jobs you're applying for.
To get through resume screens, you need to think about keywords recruiters might search for. While it’s optional, I do think highlighting technologies and including some quantitative metrics helps make your resume more skimmable for recruiters. You’ll notice that my bullet points really try to cram in as much impact as possible while being concise and logical. I always mention the technologies and frameworks I used, plus explain what kind of difference my work made. Be honest about your metrics, and if exact numbers aren’t possible, give your best educated guess. Numbers stand out, so even if you have to estimate, try to include metrics where possible ‼️
If you don’t have much software engineering experience yet, list your strongest experience first—whether it’s personal projects, freelance work, or internships—and leave the less relevant stuff toward the bottom. If you're still in school or just graduated, pick your best project(s) (ideally something you built on your own, not just a class project) to show off your skills and initiative.
Reflect - Are you focusing on the right thing?
When you've finished writing, rigorously editing, and re-editing your resume - take a step back. Ask yourself, “What kinds of roles does my resume seem most suited for? 💭” Ideally, it should align with the roles you’re applying to. If not, there’s a serious mismatch between your content and your goals, and you need to fix this.
Let's break down the technologies in my resume as an example:
Tech-stack | Internship 1 | Internship 2 | Internship 3 | Project |
---|---|---|---|---|
Front-end? | Angular.js | Vue.js | React.js | React.js |
Back-end? | Ruby on Rails | - | - | Nest.js, PostgreSQL |
Misc? | DataDog | AWS EC2, Docker | Electron.js, Axios | Prisma |
If you were my recruiter, where would you say my experiences and skill-sets lie? Probably more front-end focused than back-end, right? Overall, when applying to positions I need to keep in mind that my resume is more suited for front-end or full-stack roles, rather than purely back-end roles, thanks to my past experiences.
If my goal was something else—like AI or Cloud Engineering—I’d need to rethink my approach. I’d focus on selecting internships or personal projects that highlight skills in those areas, like cloud infrastructure or AI-related technologies. You should always think about how your resume comes across and align your experiences with your target roles.
Conclusion
Getting interviews is arguably the hardest part of the recruitment process, especially in today’s market where even experienced engineers struggle to get callbacks after sending out hundreds of applications. I hope some of my advice helped you craft a stronger resume. Many of these tips can also be applied to optimizing your LinkedIn profile (though feel free to include certifications, research papers, volunteering, etc. on LinkedIn—it’s the place where all your qualifications can really shine 🤩).
I’d love to hear any additional advice you might have for crafting resumes or landing interviews through cold applications. Thanks for reading all the way through!
Top comments (0)