Aaron Tan's Blog

06 Jan 2018

A first year co-op guide

If you’re a Waterloo student, chances are that you’re here for the co-op program. Here’s some information and tips that I’ve gathered during my first year. Note that I write this from the perspective of an ECE student mainly looking for software jobs, so not everything here will apply to everyone!

Comes with screenshots, resume and cover letter samples, and (debatably) fun times. May require assembly.

Disclaimer: Not endorsed by the University of Waterloo. This is purely based off personal experience and my small group of friends as of May 2018. Follow at your own risk.


  1. About Co-op
  2. Before the interviews
  3. The Interviews
  4. After The Interviews
  5. On The Job
  6. A word of encouragement

About Co-op

In Engineering, students go to co-op after either one or two study terms. If you are in Engineering Stream 4, this means that you start looking for jobs in mid-September. Stream 8 will need to worry about this in mid-January.

Terms you should know:

  • The co-op program is managed by CECA (Co-operative Education & Career Action)
  • Job postings are posted on a website called WaterlooWorks. This is also where you submit your resume and book interviews.

There are two parts to the co-op process: Main Round and Continuous.

  • Main Round is further subdivided into two sections:
    • First Posting is what it sounds like: it’s the first batch of jobs. This is where you will spend the first big chunk of your time, since it has the most jobs (+1000). You have a limit of 50 applications.1 Most high quality jobs will be in this posting.
    • Second Posting is usually for companies that didn’t meet the deadline for the first posting, and happens a week after first posting. There are fewer jobs in this one (~200). You have a limit of around 300 applications combined,1 between second posting and continuous. Jobs in here are middling to bad, but don’t let that prevent you from applying to a job that sounds interesting!
  • Interviews for Main Round happen simultaneously after second posting application deadline is over, whether you applied in First or Second Posting.
  • Continuous is where you end up if you do not get a job in main round. This happens right after ranks and matches end for Main Round, and jobs/interviews happen on a rolling basis. The limit for continuous is 300 applications, combined with second posting.1 In the beginning, jobs can be pretty amazing (including C A L I F O R N I A), but quality drops off quickly.
  • Interviews for Continuous. These interviews may last into the final exam period.

The timeline:

  • About two weeks into a term, First Posting jobs will be up on WaterlooWorks.2
  • You will usually have one weekend to apply to jobs in First Posting.
  • Second Posting jobs will be up over the following week.
  • You will usually have another weekend to apply to jobs in Second Posting.
  • Interviews for Main Round last about a month.
  • Rankings come out at the end of that month, and you have a weekend to decide how to rank companies.
  • Continuous starts after Main Round Rankings are done, and last all the way through finals.
  • Interviews and rankings happen every few days in Continuous.

Please set your expectations: many first-years will not get jobs in the Main Round. This is due to a combination of not having experience, competition with upper-years, and stress from university. See a student-compiled list of employment statistics for first years in their 1B term, two weeks into continuous, for reference.

Finally, familiarize yourself with the expected salaries before going in so you know what to expect for compensation.

Before the Interviews


Your resume is the most important part to getting an interview.

  • Tailor your resume for the job. It takes only a few minutes, but scan the job application. They want you to know OOP principles? If you do, phrase it the same way on your resume.
  • Assume the interviewer looks at your resume for five seconds or less. Check your glanceability. Do your headings stand out? Are your key skills and projects highlighted? Is your use of colour enough to stand out but not excessive?
  • Impact your projects and activities. Sure, you founded a club. What does that show? What obstacles did you overcome? Why is it important to you?
  • Use the buzzwords. And open a thesaurus. Employers sometimes use programs to screen applicants based on keywords. Watch the job description to see what keywords might interest them.
  • Get people to look at it. Your TAs do resume critiques. Go to them when they’re offered. Engsoc does too. Get your friends to look at your resume. Go on Reddit if you have to, since /r/uwaterloo has a resume megathread near co-op time (but make sure to block out personal information).
  • Check your grammar and spelling! Print it out. Read it out loud. Make sure everything looks good. Your friends can help with this too. Things to check: consistent period/non-periods at the end of bullets, alignment of titles, consistent font sizes, spacing.
  • Save it as a PDF. WaterlooWorks doesn’t accept anything else anyway, but it’s a good step to take whether you apply with WW or not. It keeps formatting and your fonts across a variety of devices. Make sure that your PDF is not layered (so it’s not dog slow on older computers).

Here’s my 1A resume for Thalmic.

Cover letters

Some jobs require a cover letter, usually as a filter to demonstrate your particular enthusiasm.

  • Write cover letters only for jobs that you are really interested in. They take too long to write otherwise.
  • Like the resume, tailor your cover letters. Use those keywords to your advantage!
  • Be fun and quirky but show off your skills too. I wrote mine with a structure like this: first paragraph explaining what interests me about the company, second paragraph explaining what type of technical skills made me a good fit, and the last about soft skills. Many people leave out the last one.
  • Structure it well. I had my name and contact information at the top, then the mailing address of the company, and finally the main content of my letter. You can find the mailing address of the company that you’re applying to in the detailed job description.

An example of a job posting

In orange, the mailing address. In green, keywords and job description.

You can read one of mine that got me an interview here.

WaterlooWorks and applications

WaterlooWorks dashboard

WaterlooWorks is a mess in terms of UX. Don't expect to enjoy your time there.

  • Use Chrome and download an extension. Makes it much nicer to use. I personally use WaterlooWorks Now WaterlooWorks Azure, which has nice features including being able to preview jobs and having Glassdoor integration for a rating of the company by other employees.
  • Use the job shortlist to your advantage. You have something called a shortlist that lets you keep track of jobs. It’s basically a list of bookmarks. If a job sounds interesting, add it to your shortlist. Don’t worry about adding too much (unless you have over 150 or something), because you can remove jobs at any time.
  • Check the company out on a few websites. Glassdoor is good for full-time employee reviews, some salaries, and common interview questions. Coop Salaries and Interncompass are also really good for seeing what types of work and salary range you’ll be seeing.
  • Use up your 50 applications in first round, and don’t be too picky. Unless you are a programming genius (which to be honest seeing people at Waterloo is pretty likely), you likely don’t have amazing skills to make employers choose you. Go safe. A lot of people overestimated their abilities, shot too high, and didn’t have a job at the end of term. As a general rule: if you apply for a company whose name you recognize, be prepared to have that application go down the drain. Personally, I did 30 dev jobs that I wanted to do, and 20 QA jobs that were less appealing but acceptable. Here are some of the jobs that I applied to.
  • If you cancel an application before the deadline, it will not count towards the application limit.1 Say, for example, you notice that you mispelled the company’s name. How embarassing. You cancel and reapply, and it will not take another spot out of your limit of 50 or 300.
  • You can see how many people applied to the job and how many spots there are by scrolling to the right. This is particularly useful when you’re down to the last few applications and just want to have a decent shot at an interview - apply to some jobs with a low ratio!

WaterlooWorks Job Postings

It's these two columns.

  • When you get interviews, book a spot as soon as you can. WaterlooWorks emailed me as soon as I got an interview spot, and I used that to book my times. When I got there late (by an hour or two), all the spots I wanted were already booked and sometimes they interfered with classes or quizzes.

CECA interview email

This is the email that you get from CECA when you get an interview.

  • If your interviews interfere with your quizzes or important classes, email the other applicants, then CECA as a last resort. You can find the emails of all the other interviewees when you check your interview times and locations. Email them to see if you can switch times, then un-book and re-book to reschedule. If you switch slots less than 24 hours in advance, you’ll have to email CECA to tell them that you’ve switched. If nobody can switch with you, you’ll have to email CECA; usually they can negotiate with the employer to set up some kind of alternate arrangement.

WaterlooWorks interview information

You can see the emails of all the other interviewees on this screen, as well as the location of your interview.


Congratulations! You’ve been selected for an interview. Please log in to WaterlooWorks and select your interview time from your dashboard under the ‘My Interviews to Schedule’ section. For help selecting an interview time slot, visit our help documents.

Minor PSA

  • Interviews are sent out on a rolling basis, up until the last week of main round or continuous. They are not, as some people claim, sent out in bulk at the beginning of the round. Don’t worry about not getting an interview before the second or third week. Employers are slow.

General Tips

  • Read the instructions for your interview. For phone interviews, you go directly to the call center (which might be in the basement or the second floor; check the instructions at the top of your interview), check in with the receptionist, then wait your turn there. For in-person interviews, you wait your turn in the main lounge in the lobby, and watch the screens mounted on the ceiling for your name to come up. Sometimes your interviewer might ask for additional information or fun things like your favourite gif.
  • Dress appropriately. Business casual should be more than enough. Don’t get wet in the rain or the snow - wear a jacket or a coat as necessary. Once you’re inside, put your coat in your bag if it fits, or leave it in the change rooms in the basement. Please don’t leave anything expensive in the change rooms; they’re known to be targets for thieves.
  • Get there on time, where on time means ten minutes in advance. You never know whether the interviewer might have finished early or something. Also, it looks good to be on time.
  • For phone interviews, bring pen and paper. They can’t see you, so why not write things down? You can use this for prepared questions as well.

Interview skills

  • Do some kind of mock interview before you do your real one. You might think you’re prepared but end up tongue-tied in a stressful situation. Get a friend to ask you common interview questions, and try to answer them. CECA also has free drop-in interviews in TC1214.
  • Cracking the Coding Interview and LeetCode are your best friends for software interviews. Just do them. It’s a grind. Just do them. You definitely need to know your basic data structures and algorithms, as well as the basics of OOP for a first term dev co-op.
  • Do your research. Look up the company online, and see what products they’re developing. Did they recently get funding? Ask them what they’re doing with it! Check their newsroom for PR and things they want the world to know.
  • Make sure to have a few questions to ask the interviewer. Remember, it’s an interview for you just as much as it’s for them! Common questions I ask are: “What do you do at the company, and do you enjoy your time there?”, “What type of interesting products have you developed recently?”, “Why do you hire co-ops, and what have previous co-ops done at this position?”.
  • Get a numerical salary from them. At the end of the interview, you must ask about your compensation, and get a numerical value. Employers for co-op are told to expect this, so don’t feel shy about asking. Do not accept “this is a competitive salary” or other sneaky words like that. People have been burned before. Check CECA’s information for averages for your program.
  • Don’t stress about it. Go in expecting nothing, and you cannot be disappointed.

After the Interview


You will see rankings when the ranking deadline is open.

In main round, this happens after all the main round of interviews is complete. During the Winter 2018 term, rankings were viewable Friday 2 March. In continuous, this happens on a rolling basis, usually every few days.

What employers do: They assign you a rank from 1 to 10, where 1 is they really want you, and 10 is preferably not but OK. They also have the option to not rank you.

What you see: You see offer, ranked, or not ranked. If they ranked you a 1, you see “1”. If they ranked you 2-10, you see “Ranked”. If they did not rank you, then you see “Not Ranked”.

What you do: You rank all your jobs for which you have “1” or “Ranked”. You rank them from 1 to 10. You also have one “do not rank” (basically, the nuclear option for I really don’t want this job).

What this means: 1 + 1 = you are matched. Ranked + a number = you might be matched or not. Not Ranked = no job.

How it works:

  • System checks for lowest sum between employer and students. Example:

    Student Name Employer Rank Their Rank Sum Job?
    Aaron 2 4 6 Y
    Benoit 1 6 7 N
    Charles 5 2 7 N

How it looks:



Offers and rankings are a game. You might not get an offer for a job that you really want, but get an offer for a job that you don’t really want. Playing your cards right is hard.

I strongly recommend you email other people if you got ranked for a job. That way, you can tell if somebody else already got the offer, and it’s pointless to rank it highly.

UWRanks and the /r/waterloo Ranking Megathread are two other very good sources of information to keep track of jobs that you are interested in.

Offers and what’s next

After your rankings, it’s a few hours of suspense, and then an email telling you whether you got matched. If you did, you are in the lucky 30% who get their first co-op in the main round. Congratulations! If not, then do not worry, for continuous is a perfectly acceptable place.

When you get an offer, make sure to send an email to your employer as soon as possible. Express your excitement about getting a job/working for the employer, then ask for a contract and pay. Send this as soon as possible, so you can resolve any issues promptly, and negotiate any raises that you might want.

Fill in all the forms, and make sure you know when your start date is. You’ll be off to work the next term!

On the Job

Learning, Setting Goals, and Improving

Before you start your job, you should have a few goals in mind. Depending on how much you know about the job at hand, this might be difficult to do, but try and narrow it down as much as you can. For me, my goals were as follows:

  • Learn to work in a professional environment.
  • Make some new friends and expand my professional network.
  • Learn technical skills in an embedded environment. (Once I knew that I was specifically going to be working in C, I wanted to completely master pointers, and learn good practices for a C codebase.)

If you have weekly performance reviews with your supervisor, get as much feedback as you can, and act on that feedback. That way, you might find out about things you didn’t even know you were supposed to do, before it’s too late, and also in key ways that you can boost that work term evaluation mark! At the same time, acting on their advice makes it clear that you are taking them seriously. If you don’t have weekly performance reviews (or at least some kind of periodic reivew), ask for them–they are seriously useful.

Asking questions is a good thing to do, but do it as a second-to-last-resort. Take your time to find an answer yourself, whether it be poking around on StackOverflow, or in the massive codebase. Often, looking around yourself can teach you a lot about how something works, and you acquire a deeper understanding of what you’re trying to achieve. (For example, string manipulation in C taught me a lot about pointers, char arrays, pointers to pointers, and pointer arithmetic, because I was looking around so much). Once you’ve spent two or three hours on it (I’m assuming it’s a software job), then ask your coworkers/supervisor.

Bring a notebook and jot things down. It looks better than using your phone (especially if you’re in a more corporate environment), and you also get to refer back to it later on when you might run into the same problems. I used my notebook to also write down the tickets that I worked on, so that I could refer back to it when I updated my resume.


This is a pass/fail course, consisting primarily of quizzes. During my 1A co-op, the PD20 course was multiple choice questions and two or three short-answer. Big hint: all of the content is accessible in the HTML transcript. Just do a ⌘ + F and find the keywords.

You can easily do these in twenty minutes or less, so just do them enough to get at least 50%, then ignore them for the rest of the term.

CECA Visit

Since it’s your first co-op job, there’s going to be a CECA employee who visits you on the job. For me, this happened at the end of March. It’s somebody from CECA who has a private chat with the employer about whether you’re doing well, and then chats with you to see how the work term is going. There’s literally no pressure, and it’s a good time to ask about anything that you’re unsure about.

Misc. WaterlooWorks Stuff

About five weeks into the work term, WaterlooWorks will want you to do an eCheckIn. This is for statistical purposes and I think it’s required too, but it takes so little time that it doesn’t matter. All they want to know is: wage, # of hours worked, whether you’re getting support from your mentors/coworkers, and pretty much whether you’re satisfied with what you’re doing at the company.

At the end of the work term, WaterlooWorks will want you to do a Work Term Recap as well. Again, this takes less than 30 seconds, so just do it. They ask you to rate your work term on a bunch of scales (relevance, compensation, opportunities to expand professional network, etc.), and what your intentions are for the next term.

Work Term Evaluation

The work term evaluation is your report card for the work term. You can see the entire PDF here. There are two parts of it: a part that remains private between you and your employer, and a part that’s public information for all the next employers to potentially see.

The first part is a bunch of ratings about you: resourcefulness, ability to solve problems, ability to work on a team effectively, etc. These are rated on a scale of 1 to 7. Definitely ask your employer about how you can improve if you feel that some of them are lower than you expected, or if you’re just genuinely curious about how you want to improve. It’s all private information, so you’re completely free to ignore all of it, but you should take what they say into account.

The second part is what can help/hinder you getting a job the next term, and is visible as part of your work term record that is the first page in your WaterlooWorks resume package. Your employer gives you an overall rating: Outstanding, Excellent, Very Good, Good, Satisfactory, Marginal, and Unsatisfactory. Anything below a “Very Good” is a warning sign, and anything Satisfactory or lower is a big big big red flag for any future employers.

Finally, the work term evaluation is where the employer will potentially make a return offer to you. If you get one, don’t feel any pressure to accept on the spot; definitely take a few days at least to consider it. Usually, they will have discussed this with you a bit beforehand, so it shouldn’t be completely out of the blue.

Work Term Report

If you’re in Engineering, don’t worry about it. You will only need to write one starting from your second work term, and every two work terms after that.

If you’re in Math, you start writing one from the first term. R.I.P. Can’t help you here, since I’ve never written one. 😬

A word of encouragement

Co-op is a scary thing. It’s new, it pitches you directly in competition with other people, and it all happens while you’re taking classes in university as well.

Unless you’re some kind of self-assured programming deity, you are going to feel scared at one point in the process. Personally, I was pretty terrified at all poitns of the process.

  • I was afraid that my resume wasn’t good enough to measure up against the older students with whom I would be competing for a job.
  • I was worried that I wouldn’t have any interviews.
  • I was pretty worried that I wasn’t wearing the right thing to interviews.
  • I was quite anxious because I felt some of the interviewers didn’t like me.
  • I was scared that the interviewer seemed bored or falling asleep while I was talking about something I was passionate about.
  • Rankings were agonizing.
  • I was apprehensive that betting on a ranking instead of an offer wouldn’t pay off.
  • I was terrified that I wouldn’t be able to perform as the employer expected.
  • I was intimidated by the other co-op’s achievements and qualifications. (hi Sumeet :P)

The point is, everybody goes through the same things. And it’s OK. It will feel like co-op is the sole judge of your value as human being at some points. It will hurt being rejected or not ranked by a bunch of companies and feel like an attack on your abilities. Life goes on. Everybody gets rejected at one point or another. Go in with no expectations, and you can never be disappointed.

You can do it.

aaron at 13:27