Skip to content

Instantly share code, notes, and snippets.

@byxchen
Last active August 26, 2022 01:08
Show Gist options
  • Save byxchen/f1d3eef6fd5d49bf0c8c14c6aca3d236 to your computer and use it in GitHub Desktop.
Save byxchen/f1d3eef6fd5d49bf0c8c14c6aca3d236 to your computer and use it in GitHub Desktop.
UTSC Computer Science Coop Thoughts

University of Toronto Scarborough Campus - Thoughts on the coop program

Last updated: May 16, 2019

Table of Contents

  1. General Thoughts
  2. Program and Content
  3. Quality of Companies
  4. PEY vs Coop
  5. Is Coop Right for Me?
  6. What are the best jobs?
  7. How do I get jobs?
  8. Cali or Bust?
  9. Numbers

General Thoughts

You've probably seen this post about UTSC CS Co-op from a few years ago. My experience was a bit different from theirs, but there is some truth in there. Overall, the co-op program is a good one and prepares students to find work terms and explore opportunities. The thing is, they need to cater to the lowest common denominator so a lot of students find the services and lectures useless or tedious. You can see this exact same sentiment on UWaterloo's subreddit, just search for "Fuck PD".

Generally, you're expected to complete two co-op prep courses, which train you to develop documents (Cover Letters, Resumes, etc.) and start doing interview prep. Usually you're told to apply to around 4 postings per week through the coop portal, CSM. You're also allowed to apply externally (LinkedIn, AngelList, etc.) and you just need to tell your coop supervisor you're doing so. If you're unable to secure a work term you're allowed to resequence and try again in another term, and this does indeed happen. The quality of jobs on the portal is good, getting better, but not yet great. The support you get from coop staff is good, and getting better. The curriculum is good, and getting better. If anything, I would say theres a strong positive trend towards becoming better, and the staff that Ive spoken to (I worked with the coop office before) seem to be all really great people that want to make it better in the coming years.

Overall? I give the coop program a 7/10. It is better than mediocre, and it definitely helps most of the people in the program land solid positions. It lacks the extremely high prestiege and clout of Waterloo's coop program, but it does have a long history of success and intimate connections with a lot of local companies. The staff has mostly been turned over from the above reddit posts, and there are some seriously amazing people at the coop department (Jaime, Marcia, Dallas, Venessa, Catherine, to name a few). The high costs (about $600 a semester for the first few semesters) are a bit off putting though, but I do recommend the coop program overall.

Program and Content

tl;dr: Good program, was a bit outdated but making major strides.

The coop program consists of several coop courses you take in addition to the regularly scheduled courseload (these courses are strictly pass/fail, and do not affect your GPA nor count towrads your graduation progress). Overall, they teach you about how to enter the workforce and become an attractive candidate. Here's a very brief overview:

COPD01 - Learn about job search cycle, create job search documents (cover letters, resumes, etc.), learn to assess your own skills and develop stories to describe your skills

COPD03 - Learn how to tailor job documents to specific jobs, how to effectively interview, apply, network, and additional coaching, etc.

Other - Additional courses are just about seeking work terms with support from your supervisors.

A primary and reoccuring complaint by a lot of people is that its very slow paced and a lot of the stuff is extremely simple. This is true, they do spend a lot of time covering soft skills, how to write properly, etc. but honestly if you've seen some of the resumes I've seen, you'll think that this is necessary. This does put a lot of people off it, and that's fair though.

The general curriculum has actually changed a lot in the last few years, in my opinion for the better. We used to do two-page resumes with summaries, interpersonal/etc. skills. All that bullshit. Now, we've modernized and push 1-page resumes a lot more. This is an ideal simple resume template. Not flashy, but it works and works well. The curriculum has developed new and topical stuff like personal portfolio websites, talking about whiteboarding interviews, and a lot more great stuff.

During the work term, a member of the coop team will reach out to your manager and check in regarding your performance, accomplishments, and areas for improvement. This is a great opportunity to learn if you need to improve or discuss any reservations. If you're not in Toronto, this can be done remotely too. I haven't found this too useful personally but I think its a great thing to have. At the end of your term you're expected to write a Work Term Report. Everyone hates this - UW, UTSC, literally everyone. Just write about the tech you used, what you learned, etc.

Oh, and there's also a new initiative thats been started recently, a Peer Coaching Network. Peers (students from all disciplines) from upper years who have done work terms before will help critique, review and revise your application documents and give general advice/insight. Completely free, book online and just show up! Or, join our discord server and get free advice in the #careers channel! Link here: https://discord.gg/zSxAeCf (hopefully its not dead by the time you stumble on this gist).

Quality of Companies

tl;dr: No big blow-your-socks-off name companies, but good consistency and a lot of great selection.

Interested in seeing the types of companies UTSC coop students work for? It's linked on the Discord above, I'm not putting it here so go join discord and check pins or ask for info. In short, there's a bunch of variety of companies on there, from startups like Verto to established companies like IBM. There's companies focused on healthcare (UHN) to companies focused on finance (Fidelity) and banking (RBC/CIBC, etc.).

At first glance, its apparent that it lacks the oomph compared to UW (Two Sigma, Google, Airbnb, other tech giants). This is true, and indeed no coop program in Canada even comes close to UW's. That being said, it is getting a lot better recently. Our coop department secured Salesforce (CRM giant in California) recently as an employer partner, and has invited Microsoft and Facebook on campus too. We're definitely trending in the right direction and I'm hopeful that the co-op scene at UTSC can continue to grow.

You like numbers? Check out the UTSC Co-op salary thread of 2018 posted to r/UTSC.

Generally for local Toronto companies, on your co-op term you can expect to be paid around:

First Work Term: $16-22/hour

Second Work Term: $20-26/hour

Third Work Term: $22-30/hour

The normal interview process is that you'll get a notification from the coop department that you've been invited to an interview. You'll accept and go to the coop office and interview with the company once or twice before an offer is extended. Some companies like to do an online challenge (IBM's cognitive test), some companies prefer to do virtual interviews - it all varies. Once you get an offer, the coop office will contact you. You've got a day or two to accept your offer, and if you don't, you need a valid reason (sounds bad, but UW does it too). For external offers you just send the details to the co-op office and its alright.

Professional Experience Year (PEY) vs Co-op (Coop at UTSC)

tl;dr: PEY is better for long term experience, coop/internships is better for variety of experience. I personally recommend coop or internships.

PEY:

  • More depth of experience, can contribute more in 1yr than in 3-4 months

  • Usually will not have experience going into PEY search making your job placement probably more along startup/mid tier company (IBM, CaseWare, Flipp, etc.)

  • LONG commitment (if you don't like your company) - a lot of people have had bad experiences doing year long QA, etc.

  • Much more straightforward process (compared to coop classes, its just apply for PEY, do a couple of sessions and start applying)

Co-op:

  • Many opportunities to explore different roles in tech field (SE, QA, DevOps, PM, Technical Writer, etc.)

  • Can leverage past work terms into better work terms (perhaps Startup -> Medium Company -> Larger Company -> Tech Giant)

  • If you like your job, you can often extend the work term - If you don't, it's only a 4 month commitment anyway

  • Gives you the opportunity to preview more cities and companies before you graduate

  • Most major and even a lot of startup companies offer co-op or internships, whereas not many companies do PEY

  • Slightly more expensive overall compared to PEY. Has more work to be done in terms of work term reports, co-op classes, etc.

Is Coop Right for Me?

tl;dr: Yes, its good for you if you think you're an average student.

I think that co-op is perfect for most people. If you're looking to find a job, get some experience, take some time off school, pay off some tuition, and pad a resume, the co-op department will work perfectly. That being said, who isn't coop for? In my opinion - the superstars. Almost all of my most successful friends have found their jobs outside of the portal - those in UBC, UOIT, Ryerson, McMaster, Waterloo, from all sorts of universities. It's about you, not your coop program. My friends found jobs at Google, Amazon, Airbnb, Citadel, Microsoft, Facebook, Uber, MemSQL, Jane Street etc. and most of them aren't in any sort of co-op whatsoever - they're just incredibly driven people. A lot of friends have dropped from UW's Co-op program because they said it just wasn't useful anymore. When you reach a point where you're an incredible candidate, it's true that co-op will feel redundant.

However, I really do want to note something - it's okay to not want to be a 'rockstar developer'. You don't need to graduate having interned at all 4 of the Big 4, or getting a 300k offer right out of school. You'll see your fair share of people getting amazing co-ops in Silicon Valley and NYC, but what you don't see are the hours put into interview prep, reviewing CTCI, practicing leetcode and sending out applications. It's okay to graduate with a few local internships - believe it or not, these already put you wayy ahead of 85%+ of other candidates. It just depends on what you're looking to prioritize.

Be honest with yourself. If you think you're the second coming of CS Jesus, go ahead and bet on yourself and drop coop. If you think you'd like a little guidance and be ensured a pathway to success, coop sets you up well.

What are the Best Jobs?

tl;dr: Depends on you, entirely

Large company vs small company? What makes more sense? Take a look below:

Large company:

  • Usually solid engineering best practices (git, CI/CD, code reviews, etc)

  • Solid mentorship from industry veterans

  • Enormous opportunity for networking (esp if in Bay Area)

  • Easy to get into basically any other company afterwards. If you worked Google then wanted to go to a startup, its much easier than startup -> Google

  • Great salary and a chance to explore different cities (maybe you like SF/Seattle/NYC/Austin/LA, etc. and want to live there after grad)

  • Well defined intern program with checkins, one-on-ones, lunch and learns, offsite trips (basketball games, boat cruises, etc)

  • Usually little to no choice of product/team if you're an intern

  • May be stuck working on some features that are irrelevant to core product or never shipped (my friend worked on a weird little messenger feature that I find mostly useless this summer at FB)

Smaller/Less prestigious companies:

  • Tight knit community with a great sense of community

  • Engineering practices may not be well instilled or have some glaring flaws.

  • Lots of ownership means wearing a lot of different hats (PM, SE, QA, DevOps, etc.) and gaining a lot of experience with different roles. Jack of All trades somewhat

  • Comparably worse salary and probably will be mostly local (TO, KW, Ottawa maybe)

  • Not all companies have return offer pipelines in place, nor a well defined intern program

Ok, let's talk about goals. What do you want from your internship?

Learning New Tech: Want to learn the most? Go to a smaller startup where you can take the lead on a number of great mission-critical projects. You'll learn so much and contribute in a meaningful way. I definitely recommend doing this for your first or second work term so you can develop a number of skills and see what sticks.

Meaningful Work: This is tough. Find out what companies work in the field you're interested in and go after them exclusively. Honestly, don't get caught up in the prestiege - its better to do something you like (ML at a small company) than something for the sake of it (QA at IBM).

Show me the MONEY: Go to a company in the states, no exaggeration. I recommend this for the last work term, after you've developed a bunch of desirable skills and can land interviews at the Big N companies. If you want the most money, go for quant roles in NYC. Citadel/2Sigma/JS/etc. pay around $12.5K USD per month for interns - no, that's not a typo. Any Big N job in the states (bay area, seattle, nyc) can probably net you around $7K+ USD per month, housing and board included. Going here for your last terms can help you secure a full-time new grad offer which means job security!

Getting the Job

tl;dr: Make yourself stand out. Network. Use references. Keep applying. Check out this slide deck we made.

  1. Its who you know, more than what you know. USE REFERENCES FOR GOD'S SAKE - DON'T BE EMBARASSED. Honestly, I can't exaggerate this enough. Please, do it.

  2. Stand out, there's a bunch of things you can do to get ahead. I'll list some of them:

    • Coding competitions (USACO, ACSL, UW's CCC/CCO, IOI are all incredible accomplishments. If you can get recognition here you'll get an incredible amount of clout). Those are HS contests, in University look into the ACM-ICPC and Google Code Jam, Facebook Hacker Cup, etc.

    • Hackathons. A lot of hackathons take in HS students, and I won a hackathon in HS - this experience came up a lot as a talking point for interviews, and really added to my otherwise empty resume in first year. Look into UofTHacks, Hack the North, Hack the Valley, amongst others. Check out MLH.io

    • Projects. Start a GitHub. Over summer, before school, whenever you've got some free time and are bored, maybe learn a new technology, make a personal site, or something. Keep on learning, and build a great portfolio at the same time. Don't really think about it as 'doing a project for the sake of finding a job', but rather 'explore this cool new thing that I've heard about'.

    • A good GPA (in the first few semesters of University). Although this is controversial, when you're just seeking, chances are you have little to no experience. Your GPA differentiates you from the mass of other students! This matters significantly less as you get experience though.

    • Clubs/MOOCs/etc. Show leadership and initiative, go seek out clubs and extracurriculars, learn new stuff from online courses (Andrew Ng's ML course, CS50 at Harvard, etc.) This just shows employers you're passionate and motivated. (Also psst. join CSEC)

  3. Keep Applying. Definitely apply on CSM, but also apply on LinkedIn and other job sites. One great resource is intern.supply.

  4. Not getting responses? Get your resume checked. Either hop on over to the coop office, visit #careers in the discord, or check out r/cscareerquestions who have resume review threads stickied each tuesday and saturday. Remember to anonymize your resume so you don't get unwanted attention!

Cali or Bust?

tl;dr: Good place, don't kill yourself getting there.

If you've hung around UW you've seen the meme Cali or Bust. Personally, I think California is a great place to develop and explore tech opportunities, but after making it there it's honestly not life-changing. Let's talk about some pros:

There's something different in the atmosphere at the Silicon Valley compared to Toronto and other major cities. I guess one good description that I've seen thrown around is the Mecca of CS. Honestly, the scope and variety of opportunities that are available to you is mind-boggling. There are basically recruiting events for new grads and interns every day of the week with free food, speaker series, and company swag. I've had uber pool rides where my fellow passengers offered to refer me to their companies, and others where I'm being driven by a VP of a large tech company. It's sort of surreal.

You want to work for a large company? Sure, they've got them in spades - Facebook, Amazon, Google, take your pick. Want startups? Sure! Unicorns galore like Uber, Lyft, Airbnb, and other great companies with promises of amazing IPOs. Want an unique challenge and blaze your trail in a niche field? Self driving cars, bleeding edge ML/DL and all sorts of R&D happen in the valley too. Whatever your interest, you can be sure that there's somebody somewhere working on it in the valley, and you can be sure they have a bunch of funding too! The valley is super connected with a great rapid transit system that can get you from one end of the bay to another in 1-2 hours, making travelling not a problem, even if you don't have a car.

The last thing might be the quality of the people there. I'm not saying that everyone in SV is a savant, but I've met some people I couldn't imagine I'd meet. I was reading up on query optimization - the next few days, Patricia Selinger, the woman almost accredited for the discovery of that field, showed up on my floor and had a chat with me. I met the CEO of Reddit at a meetup and had a great chat about the Reddit redesign and monetization models. If you want to meet some real life legends, there's no better place to do so.

Some cons: The Bay Area kinda sucks to live in man. It's got great weather, but the wealth disparity is a bit shocking. SF has slums (Tenderloin) very close to the tech giant offices. You'll also be hated by a lot of people that live in the area and aren't in tech, because, well you're kinda inflating their housing prices to oblivion and 'leeching off them', so to speak. Talking shop all day can also get exhausting, and there's an intense feeling of impostor syndrome and getting left behind. It's a bit stressful. Oh, and everything costs a fucking fortune, from food to housing.

It definitely isn't a mark of a bad junior engineer to not make it to a tech giant on their first job. Neither should it be everyone's aspiration. Everyone has different priorities, and if you enjoy Toronto, enjoy the opportunities, or just don't want to go to the states, its perfectly okay to stay local. Never think that you're behind or worse off than anyone else. I've seen a lot of depression about the Cali or Bust mentality, and honestly after getting there it's a bit overrated. California is a good place, but there's a plethora of amazing tech talent and opportunity in Canada too. Don't drink the kool-aid!

Numbers

Like numbers? Heres a few links. Will update as we go along:

r/UTSC's coop self-reported salaries, 2018

UofT grad self-reported salaries, 2016

Bo Peng's Toronto CS salaries, 2018

@numberisnan
Copy link

👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment