UBC Engineering Coop
For students who have never done an internship in their field before, joining the coop program at UBC is a good idea. The program provides a job board, where companies from Canada or the States post available internship roles. About half are local, and the other half are from other parts of Canada with a few from the United States. During the peak season of co-op postings (January), there are usually around ~200 postings at a given time.
Pros
There are a lot of local companies looking to hire coop students ONLY through the university’s job board. And some employers do not advertise or post their positions online. So as a non-coop student, it is harder to find online postings, especially when you’re not familiar with the software companies around the area (click here for a list of Vancouver software companies). I tried looking for jobs outside the job portal as well, such as on Indeed or Linkedin. However, I found them to be very limited.
Also, you are supported by the UBC engineering coop office, so they take care of the employer side things, and make sure you won’t get taken advantage of, etc.
Cons
Mostly the cost. Joining the co-op programm and workshop fees add up to $200, and the co-op office charges ~$800 per work term. Also, you have to attend two 3-hour long boring workshops at the start. These are great if you are new to Canada and have no idea what a resume or cover letter is or how interviews work but otherwise useless.
Statistics
Applications: 45
Interviews: 2
Offers: 1
Start-date for search: Jan 1
End-date for search: Feb 3
My experience
On January 1st, I started editing my resume and cover letter. At first I was putting in a lot of effort to tailor my cover letter to each company, and then I gave up after the first company. Instead, I ended up writing 4 different body paragraphs about different experiences where I gained different skills (e.g., one for Python from design team, one for web development from blog and hackathon, one for Java and class projects, etc). Then, I would just pick 2 for each cover letter depending on the company. If nothing really matched my skills, I just picked what I thought were the strongest ones.
Starting from day one, I made it a goal to apply to 3-4 companies each day. Every Monday, Wednesday, Friday, after my 8am class, I would use my 1 hour break to apply to companies. Whatever else scraps of time I had (like when I was bored in class or at night during my Youtube time), I would look for new job postings that I could apply to, and “shortlist” them so I would have a bucket of jobs to apply to when I had energy in the morning. It actually takes a lot of energy and concentration to write these cover letters, so that’s why I like to leave it in the morning. Personally, since I lived in Vancouver, I applied to only local jobs and software developer positions. A lot of people don’t like QA or software testing roles, so I avoided those.
After about 20 or so applications, I finally got an interview from a start-up company in Downtown. The co-op coordinator emailed me, and I booked a time for the same week. With only 4 days to prepare, I put my schoolwork on pause and started reading “Cracking the Coding Interview”. This is mainly for the computer engineering students out there, since we are in the process of taking the Data Structures and Algorithm course. I also started doing Leetcode questions sorted by easiest. And preparing for behavioral questions. For those ones, I like to think about 5 important experiences I had that are relevant to the field (e.g., design team, hackathon, personal projects, team projects) and think of a problem I overcame or a story I can tell about it. And of course the typical questions like “why do you want to join ____” or “tell me about yourself”.
I ended up over preparing for behavioural questions, as the interview was mostly technical. I didn’t answer the technical question well (write a program that calculates the angle between 2 clock hands given a digital time), and consequently did not get the job.
The day I was rejected, I got another interview with a larger Burnaby company. So I put my schoolwork on pause again, and started doing more leetcode questions and preparing for behavioral questions. In this interview, I was mostly asked about the projects on my resume, and the technical questions were pretty easy (reverse a string, finding a palindrome). The following business day, I got an offer. I also received a huge stack of piled up homework...
Resources
- How to crush interview (for behavioral questions and generally): Youtube video
- List of Vancouver Tech Companies(2020)
- Leet Code Interview Questions
- Cracking the Coding Interview (mostly for big companies, but technical questions apply for all software positions): Online PDF
- UBC Alumni talks about getting a job at Amazon: Video
- Good end of interview questions to ask employer