I'm writing this guide since it's a common question people ask me, and hopefully, I can break down what I did. I'd be very mistaken to write a guide like this and not acknowledge the amazing mentors I had along the way who knew exactly what to say and how to navigate the stressful process that is job-hunting. They helped me immensely in helping me get to where I am now, and I hope that I can somewhat pay it forward with this.
I'll start off with a little bit about where I was right now as I write this:
2B mechatronics student at UWaterloo, stream 8
Finished two co-ops in the areas of firmware and electrical engineering
Figured out I don't like mechanical engineering, and want to write more controls code
I'll tailor this guide to my experience in UWaterloo's co-op program and specifically my experience with mechatronics. A friend of mine, Xierumeng, has also written similar guides from the ECE perspective (check them out!). I also came across a guide with a similar title after I had finished this one written by a U of T student that contains some helpful advice in regards to CS/non-waterloo-engineering pathway, check it out here.
Before Uni
A common question parents and incoming students alike ask me is:
"What should I be doing the summer before I start mechatronics to prepare for co-op?"
The answer that the majority of upper years respond with (including myself) is "enjoy your summer - it'll be your last true break". And it's true, you should enjoy your summer - you'll have plenty of time to worry about co-ops while in university. Go off to camp, spend it with friends, do whatever you please, and have fun while you do it.
That being said, I'd very optionally recommend putting a very small amount of time per week into projects you're genuinely passionate about. For me, this was Medvita. Make sure you don't force it, or else you'll find yourself putting time towards something you don't genuinely believe in and burn out before you've even started Uni...
Side note: if you're in stream 4, I would up my recommendation to work on a project over summer, as you will be job hunting quickly in the term.
To show progression, here was my resume while I was in high school coming into 1A. There's quite a bit wrong with it, but it shows how I've improved.
Starting off in Uni
As a stream 8, my first co-op recruitment term wouldn't be until 1B. This proved to be advantageous for me as I was able to put experience on my resume at the undergraduate level that I didn't have while in high school, and most importantly of all, learn a lot of technical knowledge from upper years above me. Above all, the vision of this term is to figure out what you like and don't like, and in the process get experience that you can put on your resume. The key pieces of advice I received that aided me in my co-op search were as follows:
Get involved with Student Design Teams
Student teams are the gem of Waterloo Engineering - you'll get to work on some ridiculously cool projects (think autonomous drones/submarines, electric racecars, CubeSats, rockets, the list is never-ending) and have a lot of fun.
You'll receive lots of technical mentorship as subteam leads are willing to teach younger members, and get exposure to what you don't know. This is, above all, the most valuable aspect of what makes student teams an excellent tool to springboard your own knowledge
Companies often recruit directly through design teams as many alum come back and recruit interns from their own team, and will give you access to other opportunities.
Develop your personal knowledge with projects
As a first-year student, chances are that this will be your first technical co-op/job. Personal projects are a great way to showcase that you have more knowledge than a standard first-year student as the majority of these courses focus on the fundamentals rather than implementation.
Ideas are plenty available - a habit I started in 1A is a OneNote page with ideas that I add to when inspiration strikes, and when I'm feeling up for a new project, I choose from the list rather than going mindlessly huntingm
Hackathons are fun too! They are an easy way to put a bunch of time in at once and have a workable product at the end, though I'd recommend cleaning it up after since employers frequently browse through the inner workings of your submission.
Start by developing a resume & portfolio early
This is moreso a timing thing than anything else. If you're able to develop your resume beforehand, you don't have to stress about making it during the beginning of the term.
Take advantage of resume critique sessions with upper years and friends. Ask to get critiqued by those who are in the positions you want to be in, and aggressively refactor. I would recommend keeping an open mind with suggestions and watching how individuals critique your resume as there is a lot of conflicting advice out there - a tactic I learned was to watch for common feedback/things everyone seemed to point out and adjust those as everyone has a slightly different resume style.
A portfolio can take a variety of forms, but having one is strongly recommended to show off what you do. An effective tactic is to make your portfolio attachable as a 1 or 2-page pdf with photos and additional technical description
Obviously, focus on school too - it's important to maintain a balance. That being said, about 5-6 hours a week on these activities will be enough to get started and really get something going.
First draft of my resume
Final draft of 1A resume
My 1A project which sparked an interest in motor controls
A quick confession - the motor controller never ended up working, but I kept it on my resume as "Present" since I pushed to work on a rev 2. I frequently brought this project up in interviews and talked them through what I would improve and what I was currently working on debugging.
My V3 resume didn't get me any callbacks, while my V6 resume had slowly started to get me interviews. It's a little bit outside of the scope to discuss how to write a good resume, but I would recommend starting off with upper-year students in the field as an excellent source for feedback.
Applying for jobs
When to Apply?
This is probably the most common question I'm asked - and the answer is slightly vague. Earlier is better, but too early and you'll be met with silence. The trick is to be the first one in their applicant pile - a general rule of thumb I've followed is to aim for about 6 months in advance starting, except for summer US jobs where the applications start about 10 months in advance.
WaterlooWorks
Navigating the system that is WaterlooWorks (WW) may seem daunting at first, but it is far easier than the user-interfaces leads on. There's a ton of jobs available on WW, but I would recommend applying with a healthy mix that biases the majority of applications towards jobs you have the skills for, an okay-number of stretches, and a few moonshots (you never know).
When applying, you'll be asked to submit a package that includes a resume and your transcript, and work term history at minimum, with some employers asking that you submit a cover letter as well. I would recommend writing out a generic template that you can swap names and positions into and only using it when required. I recall when I hired co-ops through WaterlooWorks, I had a few candidates submit a generic cover letter that had a few typos and were not well made and took away from the overall quality of submission.
Overall, the process of applying is fairly speedy.
External Applications
While WaterlooWorks is an exceptionally fast way to get jobs quickly, it is not the only way to get access to postings. There are plenty of job boards out there, with my personal favourite going to LinkedIn as I can use it as a networking tool. I've found a lot of success with connecting with engineers on linkedin and inquiring about their internship programs as they are often very willing to guide you through the intern process and occasionally provide referrals. When connecting, I recommend a simple note on the order of "Hi <Name>, I was hoping to learn more about internship opportunities at <Company Name>". This will get easier as you build up more experience, and it genuinely is a numbers game.
Interviewing
The best piece of advice I received about interviewing while I was a first-year was that they aren't interrogations, it's simply a conversation in which both you and the company assess each other.
The best way to prepare for an interview is to have friends and upper years conduct mock interviews with you to help you get an idea of the types of questions you can expect and to get better at how to answer. However, the best way to get proficient at interviewing, as circular as it sounds, is to simply do a lot of interviews (both real and mock) - mock interviews help a lot in improving interview skills.
General Tips
If applicable, bring portfolio items or a portfolio with photos into the interview
Approach interviews with a sense of curiosity - ask what the right answer is to questions you get wrong, and build your knowledge base from there.
Have fun in them! You get to talk with an engineer who is interested in your skills and ability.
For context, a typical technical interview starts out like so:
Introduction
For this part, they'll do the talking, you can just sit tight and watch them do it all.
"Tell me about yourself"
This question is intentionally open ended - take advantage of it by steering the conversation to your strengths. Have a response ready that is natural and ~30-45 seconds to say. Provide hooks for your resume that you want them to ask you about inside this part.
Resume deep dive
Be ready to talk about anything you've even mentioned on your resume. Have points prepared for the projects and experiences on your resume and prep the responses.
I'll attach an example one of these points for a project I did over co-op:
Technical Trivia
Quizzing about knowledge that they want to see if you know or not. These questions are ones you can get from an upper year, or through resources such as the Tron 2025 Interview Question Bank.
You can also get a decent idea of the types of stuff you will work with by the manner in which they ask the questions.
Technical challenge (i.e. coding challenge, design a circuit, etc)
These are things you can also find in the question bank, but vary significantly from industry to industry.
Reddit is a surprisingly good source for interview questions.
"Do you have any questions for me"
Your opportunity to interview them back.
Ask about pay, housing, projects you'll get to work on, next steps in recruiting process
A golden question to ask is "Over the course of the interview I'm sure you've gotten an idea of my strengths and more specifically some areas of improvement. Do you have any concerns about my ability to perform this role that I could potentially address". You'll either get the opportunity to address a nagging question they have but don't want to ask, or hear the good news right then and there that you're about to get an offer.
Offer Stage
After a few interviews, hopefully you start to see the good news pop into your inbox! Something I've found as well is that once you get an offer for the term, it becomes easier to get more as oftentimes you'll have a deadline you need to know by and companies are usually willing to accommodate.
Pay as an intern
One of the biggest perks with an internship is the fact that you'll get paid for the work you do and save up for next term! It is also a factor in ensuring that you are able to meet basic living essentials (i.e. rent, food, etc) and why it is critical to know how much a company pays its co-op students.
In Canada, intern pay is often backed by a wage subsidy that allows for employers to easily hire co-op students (and may potentially restrict the role to being a Canadian citizen/PR/similar). This is important to note as I've found many Canadian employers are hesitant to give more money than this amount as it comes out of their own pocket. At Waterloo, it is not uncommon for employers to use the average co-op earnings chart to determine pay codes for interns in various years. Companies will say something similar to "We pay co-op average" or "20% above co-op average" to keep it fair.
Outside of Canada (i.e. US), I am not aware of interns being subsidized for non-residents/citizens, and the wages are relatively higher according to the average co-op earnings chart. Glassdoor and levels.fyi occasionally contain intern pay info, but simply asking in the interview is a good way to figure it out.
Decision Time
After receiving a few offers, it's now time to decide which one you'd like to take. My advice would be to reflect on what you value in a co-op independent of what offers you've received and look at everything from this perspective. Past interns at a company make excellent resources for speaking to these topics and can help you make a decision.
For context, here's a few key factors that I evaluate
Experience/projects
Location
Pay
Mentorship opportunities
Work events and things I'd get to attend while over co-op
My friend Melda wrote an amazing decision matrix template and offered to share it!
How about after the first co-op?
Refer back to the key pieces of advice when "starting off in Uni". The same key pieces of advice build on each other and compound over time with work experience.
I'll attach my resumes after 1st co-op, and after 2nd co-op for context.
After first co-op:
After 2nd co-op:
Acknowledgements
Melda K helped me edit and tweak some of my advice and provide a few resources