I cannot tell you what an accounting major's interview will entail, or what a biology major's interview will entail, but I can tell you a little about non-technical interviews and Software Engineering / CS technical interviews.

If it’s an on-site campus interview, go in at least 10 minutes early, especially if you're not familiar with the TC building. Don't go in too early though... or else you'll just be stressing yourself out. You will eventually reach the point where you don’t get nervous at all, after so much interview experience.

Remember that the employer is not out there to get you or ask you trick questions (well.. depends on the company I guess). Most of the time, they just want to see what kind of person you are, and if you are a good fit to the team. Maybe you're extremely passionate about the product that a company makes, but the company just wants neutral employees who just do what they're told. Maybe you have a 95 average, but the company just wants a junior student who wants to learn stuff, not a know-it-all.

How to Dress & What to Bring:
Depends on the company. Enterprise / corporate - probably formal suit/dress clothes. Startup / Large tech company - casual (they honestly don't care, just dress comfortably). Definitely don't look like a mess (as if you ran to the interview or something). I recommend bringing at least a clipboard with a pen, paper, and at least 1 copy of your resume inside. Paper and pen is very useful to take down any notes you want, including employer contact information if they are willing to give it to you. Sometimes employers come unprepared without any of the applicants' resumes. Well you can just give them a copy to make their life easier. I don't recommend bringing a laptop or a heavy bag. Some companies will ask you to bring something to show them, but that doesn't happen very often.

Common Interview Questions:
1. Tell me about your last co-op term. What did you like/dislike there?
2. What is your favourite course & why?
3. What do you know about us? (I haven't gotten this in a while though)
4. What makes you stand out from other candidates? Or, tell us something unique/special about yourself.
5. How do you keep up with tech news? What blogs do you read?
6. Tell me about a time you had a conflict in a team setting, and how you dealt with that conflict.

The list goes on and you can find more online. To 'prepare' for this kind of interview, I recommend learning more about yourself. No, seriously. Have a good sense of what you've done in the past 2 years in terms of extracurriculars or part-time jobs. You need to be able to have a smooth conversation with the employer. Not being able to think of examples shows that you haven't really worked in a team setting, or you haven't had experience in such and such tells them that there may be risk of you entering their workplace, lowering your chances of getting the job compared to other highly qualified candidates.

In terms of communication skills, show some liveliness and interest in the company. At least look over their website before walking into the interview (before making a fool of yourself!). If you didn't bother to look, then why should the company hire you? You're not even interested in working with them.

Technical Interviews

Most of the time, technical questions are used to see a candidate's thought process and technical knowledge at a glance. There are various types of technical questions. There are riddles - thinking problems, questions that program manager or system design people may get. These questions are useful to see a candidate's creativity or thought process. There are trivia questions that are just pure knowledge-based. It's either you know it, or you don't. And then we have the generic programming questions, reverse a linked list, find the unique element in a list of duplicates, etc. - the most common type of question. Most of the time, the interviewer will guide you through the problem if you're stuck. Some employers just sit and stare at you though.. which really sucks..

Rule of thumb (especially for trivia): Admit that you don't know instead of making up bullshit. There's nothing wrong with not knowing what an AVL tree is, or what SQL injection is, simple terms that can be searched via Wikipedia and learn on the spot. There are of course important concepts that are essential to certain jobs, however, and are huge deciding factors if the company is looking for a senior student.

A 45 minute interview is usually technical. A 30 minute interview could be technical, but it is likely non-technical. You can also end up with 2 back to back interviews, and in that case, it may be 2 technical, or 1 of each. I also want to note that a lot of employers don't abide by the time limit, causing there to be delays in interview schedules (can be frustrating for those who go in 20 minutes early).

Technical questions can be done on paper or whiteboard (if there is one in the room). Sometimes, the employer will ask you to type your answers on their laptops so they can save your progress; harder to do for whiteboard questions, and paper = messy at times).

Questions to Ask

ALWAYS have questions to ask, even if it's something stupid such as "What's it like to work in DT Toronto?"

Typical questions I always ask for:

1) Normal working hours
2) Public transportation options
3) Team structure
4) Methodologies used (applies more to software companies)
5) Salary (ask this if you've already completed >1 co-op term)
6) Past co-op projects/ things that co-ops do
7) Where do you see the company in X years?
8) What type of training will be provided?

The list varies depending on the company. Asking specific questions about the company can be impressive and shows your interest, but be careful to word it in a way that you're not trying to get insider information.

Salary: In first year I've been told not to ask at all. But it really isn't too terrible of a question to ask, especially if you require a lot of financial support & you're going to have to rent a place to live. Employers should understand that. Definitely ask after your first coop term, because salary is a huge deciding factor between 2 or 3 great job offers.

Question 8 is something you may want to ask if it's a job you've never done before. Some companies do training in the first week, others just throw you onto a project, or ramp you up immediately. It honestly doesn't matter IMO how you are trained, as long as you are given decent work and mentored properly.

Decision Making

Once you've completed 1 or 2 co-op terms, you already have a huge competitive advantage. You will likely have less upper years to compete with, and you will have more experience + knowledge on your belt. Now, you can be a little more picky with what kind of jobs you want to apply to, or accept offers to. As I mentioned, salary is a great deciding factor.

Other factors include: new type of working environment, close/far away from home, large/small city, etc.


Once the interview round has ended, rankings must be made by the employer. If an employer ranks you, you can rank them. If they don't rank you, then you cannot rank them (it means that they don't think you're suitable for the job). Although a company may only be looking for 2 students, they will give offers to 2 students, and they will rank other students. They can rank every student they interviewed if they wish. They can even rank a student that they never interviewed for the specific job (perhaps they believe the student is more suitable for a different role). But essentially, they can rank students 1-9 (just like how students rank employers), and they can give offers (worth more value than rankings).

Once the rankings go in, Jobmine will run its slow algorithm and match employer to student, ensuring that employers and students get the best choices (it's a graph theory problem). It's rumored that CECS favours the employer, thus a student may be screwed over. Rank wisely!

I've mentioned this before, but please do not apply to a job you do not actually want. This may be hard to follow in first year when 'any job will do', but it becomes bad when you receive an offer to a company you don't even want, and you only get ranked for a company you REALLY want. You may still end up getting the job you do not want, due to Jobmine's ranking system. You can 'sign off' a job if you really don't want it, but make sure to do this before rankings. There are some useful resources if you wish to look up job satisfaction (similar to Glassdoor, but for Waterloo coops). http://ratemycoopjobs.com is a good one.
  • Tip 1: Read Cracking the Coding Interview if you have time. It’s an awesome reference if you’re tackling your first round of interviews.
  • Tip 2: Don’t rely on that book. It helps to get you warmed up on various CS topics, but the real strategy is to practice with a friend, or learn from experience.