Written by: Jarrod Servilla

What Is PEY?

PEY (Professional Experience Year) is an optional, 12–16 month co-op program that students at all of the University of Toronto’s campus can do after their second year of studies. Generally, most students do so after third year as most co-op positions are looking for third year students. It is focused towards those in CS and Engineering, however there are some positions available for Business and Accounting students. (Check out /u/CTJEJK ‘s experiences as a non-CS/ENG student getting a data science PEY over here.

Some companies in the PEY portal include: Oracle, Red Hat, AMD, IBM, Intel, Huawei, Kijiji, RBC, TD, Manulife, CIBC, Ontario Teachers’ Pension Plan, Environment and Climate Change Canada, ExxonMobil, Loblaws.

International students need to provide a co-op work permit and social insurance number before beginning their PEY work term. As of Jan 2022, international students at UTM can do PEY if they are in the CS major or specialist programs.

Frequently Asked Questions

  1. How do I do it?

You’ll register over here, and you can register in either the fall or winter term. There is no difference between the two, so I advise you to register for the fall one as you’ll be able to see more positions!

  1. Is there a minimum GPA?

According to this link, you just need to be in good academic standing which is > 1.50.

  1. What is my student status during PEY?

While you work full-time as a PEY Co-op student, you will retain full-time student status at the University of Toronto.

  1. Will I need to pay incidental fees while I’m working at my PEY Co-op position?

Students pay part-time incidental fees for each of the fall and winter terms while on PEY Co-op, which ensures you have access to important University services and plans.

  1. If I receive OSAP, will I retain my interest-free status while I’m on PEY Co-op? Do I need to let OSAP know that I’m still a student while on PEY Co-op?

Yes. To retain your interest-free status, you will need to complete the Continuation of Interest-Free Status (CIFS) form online through OSAP. It is recommended that you complete the CIFS application as early as possible.

  1. Do I get a credit?

Well yes, but actually no. It will appear on your transcript as “PEY Co-op 500” credit/no-credit course, but not contribute anything meaningful such as being able to take less courses. For engineers, it will count towards their work hours completion requirement.

  1. Can I take courses during PEY?

Yes, with some limitations.

  • Check that the course is not core/mandatory for your POSt and is not scheduled during work hours
  • Speak with your manager about taking the course, ensure your work will not be affected
  • Complete the PEY course approval form
  • Submit request along w/ completed form to pey.coop@utoronto.ca
  1. Can I get a PEY job with a bad gpa/as a CS minor?

Yes! A lot of people I know have gotten great co-op experiences as a CS minor, or with a bad GPA, or both. If you’re in this situation, try to work on side projects/hackathons outside of school to make your resume stand out and practice leetcode.

  1. Should I do 12 months or 16 months?

In my opinion, 12 months starting in May. You’ll be able to leverage your experience into a 4-month internship, or if you like it where you are you could extend the co-op by talking to your manager. /u/TuloCantHitski made a great post over here, please check it out.

  1. What is a good hourly pay?

This really depends on your skillset and experience, but I’d say you should try to find a salary >= the current median of $55 000.

  1. Can I negotiate pay?

Of course, if you think you’re not being compensated fairly due to your experience (past internships, side projects, TAships, hackathons), then you can try to negotiate for a higher pay. Just write a polite email explaining the circumstances. According to the PEY office, the company cannot revoke the offer due to negotiation unless you were inappropriate in your email.

NOTE: Some companies do not budge at all. According to the PEY office, AMD and Intel have strictly set pay guidelines.

The Application Process

You will need a resume, cover letter, and your unofficial transcript (Acorn -> Academic History -> Complete Academic History -> Download as PDF).


This is not the end-all-be-all format, feel free to tweak it to your preference. If you have a CS internship, then work experience should be above projects. Otherwise, put it under.

General format:

  • Information (Name, phone number, email, github, linkedin)
  • Education (Program, GPA, start date to expected graduation date, relevant coursework, scholarships/awards)
  • Skills (Programming languages, tools)
  • Work Experience (Job title, place of employment, length of employment, job desc points, technologies used if applicable)
  • Projects (Project title, technologies used, project description, github link)

NOTE: Be careful about uploading CS assignments on Github. It is possible you will be flagged for AO.

  • Campus involvement (if applicable)

General tips:

  • Should be one-page, concise
  • Descriptions should be in active voice, results oriented, such as:

    Optimized SQL queries that resulted in an efficiency increase rate of 300%

  • LOOK OVER YOUR RESUME CAREFULLY. Anything on there can be questioned! If you have anything that you don’t know too well, TAKE IT OFF! If you get questioned and you don’t know it well enough, the interview might be instantly donezo for you.
  • Think about what your resume says about you. For example, if you have a good amount of mobile and web applications, you can be asked why you wanted to work specifically in certain areas like C software development and backend.
  • For resume resources, check out our internships resources page!

Cover Letters

General format:

  • Introduction
  • Description of past work (place of employment, job title, description of duties, what you learned)
  • Description of projects (tech stack, what you learned)
  • Conclusion with well wishes and intentions for working there


Hello, my name is [name] and I am a third-year student studying Computer Science at the University of Toronto. I am applying for the [position name] Co-op position at [place].

I am currently working at [a robotics lab] at the University of Toronto Mississauga as a programmer. My primary responsibility was to … [details omitted]. While working here, I expanded my abilities in object-oriented programming, software design methodologies, and project management.

Outside of school, I am currently working on a React web application called [Y], allowing students to [do stuff]. This project applies modern front-end design principles such as sleek animations, minimalism, and responsive design to keep the user engaged.

At [Hackathon], I worked with a team to create …, obtaining 3rd place overall. … is an Android and Arduino project designed to [purpose]. [Hackathon] was an excellent experience as I was able to learn new technologies such as Bluetooth and Arduino programming and the importance of taking initiative within team environments to complete the task at hand.

As a student at the University of Toronto with a cGPA of [gpa]/4, I believe that I have a strong foundation in computer science. I look forward in continuing my professional development in this area of practice. Attached you will find my resume and school transcript for my third year. Thank you for taking the time to read this, and I look forward to any future meetings to discuss the opportunity further.

Regards, [me]

If you are not getting any interviews, there is a problem with your resume or cover letter.

The Interview

Congrats, you got an interview! If it’s an on-site, you’ll receive an email notification, and you’ll have to go to the PEY job portal site -> Interviews -> Click the interview for the job -> Sign up for a time slot

Interviews will normally be hosted at the Engineering Career Centre (Fields Institute, enter make a right then a left and it’ll be on your right), however they can be hosted elsewhere.

The interview process for various jobs differs, which could be up to 3 or 4 rounds. Some jobs are entirely onsite, half onsite half online, or entirely online. Some things you may have to do:

  • HR Phone Call — They’ll just ask you questions that you normally fill out on the job application and whatnot.
  • Online Coding Assessment — 2 or 3 leetcode easy/medium questions completed on an online assessment site.
  • Phone/Video Interview — Same format as a normal interview, but you might have to write out code on a code sharing platform.

For onsite interviews:

  • Make sure you bring a copy of your resume! They will go over your resume with you, so it’s good to have this on hand to review.
  • Research the company and job position.
  • You should be dressed semi-formal, this applies even for online interviews.
  • Always be courteous to anyone you talk to, such as the receptionist.
  • Be attentive during the interview! Make eye contact and don’t be rude or condescending.
  • There’s free snacks + juice at the ECC, so if you’re nervous try to grab a bite and take deep breaths.

Interviews usually consist of:

  • Introduction from interviews and a description of what the job entails
  • Ask you why you want to work there/for that specific position and what you know about their company
  • Overview of your resume, asking questions about previous work experience and projects
  • Soft skills questions: what would you do in X situation, name a time when Y happened and how did you react.
  • 1 or 2 technical questions done on the whiteboard
  • Opportunity for you to ask questions

Here are examples of questions you might get:

Previous Experience:

  • Why did you choose to use [technology X]?
  • What project were you most proud of during your time at [workplace]?
  • What were some things that you learnt while working at [workplace]?

Soft Skills:

  • Why do you wanna work for [company]?
  • Give a time when you had an internal conflict in your team, and how did you resolve it?
  • What should you do if you have a disagreement with your manager?
  • Tell us a time when you had to work under a lot of pressure, and how you handled it.
  • What is your greatest strength? What is your greatest weakness?


The most important part of answering technical questions is describing your thought process. While correctness does play a part, being able to articulate as you go along will matter a lot and can tell the employer how effective you’d be in a team. String questions are pretty popular in interviews, such as find the smallest word in a string, and then calculate its efficiency.

I try to do the following:

  1. Write out some test cases! This is a good time to make sure you understand the problem correctly with the interviewer.
  2. Come up with a solution asap, no matter how ugly. Can you think of a O(n^2) solution? That’s OK! Once again, this is a good way to confirm that you’re on the right track and can try to optimize it.
  3. Refine your answer so that it is the optimal solution. Alright — this one just takes practice, but my general procedure is to draw out the problem, see if any data structures are applicable, and think of if I’ve done something similar in leetcode/class before.
  4. Discuss time & space complexity.

What to Ask

Lastly, the recruiter will ask you if you have any questions. Always have some on hand, since interviews are a two-way street. You wanna know whether you would like to there or not as much as they want to see if you’re a good candidate.

Here’s some questions that I ask the interviewers.

  • How do you define success in this role?
  • What do you do in a normal day?
  • To what extent is testing or CI/CD involved in the deployment process?