A deeper dive at my 6 co-opsWritten on July 7th, 2020 by Jonathan Tsang
note: These are my thoughts only. I don’t represent anyone.
My inspiration is Eric Jang’s post talking about his internships here.
Waterloo’s co-op program allows you to do 6 co-op experiences at (usually) different companies. I really enjoy this aspect because it lets you experience different companies, teams, tech stacks, and more. Switching into CS from Science I was granted 5 co-op terms from the co-op office. I asked the co-op office if I could do 6 co-ops. They said no. I asked if I paid the co-op fee the requisite number of times could I do 6 co-ops. They said no. I asked why I couldn’t get 6 co-ops and the unsatisfactory answer was that since I switched in at around 2A and I had spent the summer off in the science faculty (built into my sequence back in science) they did not let me get 6 co-ops. Nonetheless I took an off-term to do my 6th co-op and I actually graduated that term as well. (which would not have been possible had it been an official co-op term, since you need to end on an academic term)
In a more concise manner than My-Story I want to delve into each co-op experience and give an honest take on each one. There is a lot to discuss in each one, as I grew as a software engineer, and what I liked/didn’t like.
Going to look at things like:
Co-op 1: SchoolMessenger (Winter 2016)
This was my first co-op as a Web Analyst. Not much to say since the Jobmine posting had requirements of “2A and above, Canadian citizen” as the requirements. They paid me $13/hr to copy and paste content from one website to another. The business model was they would make schools a new website with CMS and they had to move their old content over to the new website. That was where we came in. They hired ~20 interns from Waterloo to do this. This was more about meeting other people from other programs and faculties that otherwise I wouldn’t have met.
The company was probably operating under tight money cause the attitude they treated people with kind of showed it. One time they grouped all interns in a room and told us that we made too much noise in the developer area and some people were abusing their tight time clock-in and clock-out policy on Citrix (which recorded people down to the second). Another time one of the interns took 4 bagels in one day and they explicitly said they were instating a one bagel policy for each person.
Co-op 2: SurfEasy (Winter 2017)
This was my second co-op as a QA Analyst at SurfEasy. I’m not sure if it is still in Toronto. When I joined it was owned by Opera and subsequently Symantec (after I left) Link. I was mainly aiming for a dev co-op but since I was still in the science faculty at the time, my coding was limited, and my lack of experience made it difficult to convince companies to interview me for dev positions. I found this in main round (as opposed to continuous round). I decided a QA position would be good enough for now since I was trying to transition into CS.
I admire the opportunities the people at the company and the company gave me to improve, and the feedback they gave me. I mainly worked on manual qa for their iOS, Android, and desktop VPN apps. I also worked on the iOS mobile automation suite.
Co-op 3: Okta (Spring 2018)
This was my third co-op and first developer co-op as a software engineer intern at Okta. This marked my third and final co-op in Toronto.
I was amazed at the tech they provided us. They gave us the brand new macbook pro to develop on. There was a lot to enjoy. They had a dedicated intern coordinator for intern and company events. I had a dedicated team that was supportive, a mentor to ask questions, and gave me a lengthy intern project that allowed me freedom, flexibility, and the ability to ask questions. I also won at their intern hackathon and smash tournament. Which are small things but fun overall.
The gripes were tiny. I didn’t particularly love the small all-hands space/tables. I’m not sure what else to really complain about. My commute from my house to downtown toronto on the subway was an hour and thirty minutes one way. That was exhausting.
My project was a full-stack web page looking at two areas of the cell-based infrastructure. I worked in Java on the backend and JS on the frontend with a framework called backbone. I got it completed and merged in during my time at Okta.
I mentioned this in My-Story but after the internship of the 5 interns, 4 interns got a return offer and for me Okta decided to not give me a return offer in either a full-time or intern capacity. At the time I was in 3A and I had just completed cs350 and cs341 (so I was not graduating at that immediate moment). My team needed someone to fill the gap so they moved one of the other interns to my team since I didn’t go back.
I wanted to include this because not everyone ultimately gets an return offer the end of the internship. Whether it is due to poor performance, headcount, company hiring at the time of internship, or other factors. As much of a painful experience it was to be the only intern to not get a return offer, I had to learn from that experience and take the feedback they provided. It was my first developer co-op experience and I had a ton to learn professionally and socially. Not everything is going to go picture perfect as you imagine it and it took me time to understand that at the time I wasn’t at that level. It is always good to strive to get a return offer but even if they had offered a return offer, I probably wouldn’t have taken it as I wasn’t graduating yet and I wanted to experience other companies. If you didn’t receive a return offer at an internship or if your performance wasn’t deemed good enough, you just need to keep trying and improve on what you failed at previously.
Co-op 4: Zenefits (Spring 2019)
This was my fourth co-op and first co-op in Vancouver. I was really aiming for California but it ended up being the best thing that didn’t happen cause I loved Vancouver. I would still describe it as my most down-to-earth co-op and my most fun co-op.
I was originally going to do a 10k run in Toronto and start at a later weekend but they said that the “new hire onboarding” was taking place that weekend, so reluctantly I cancelled my 10k. Talking to our office coordinator we didn’t know if other offices (SF, etc.) had interns. Luckily the Vancouver office had 2 other interns who were awesome. It was great getting sushi, ice cream, ramen, in Vancouver.
The office was only about 30-40 people but it was a nice community where everyone was chill. They had daily lunches all week and a fully stocked fridge with tons of LaCroix. We would usually chill at the small tables and all chat at lunch and play board games every Wednesday. I loved the atmosphere and overall camaraderie.
The downside was I was not working on the product side so I can’t really comment on Zenefit’s long-term viability or really on the product itself. I never touched the product working on the infrastructure team.
My project was working with their CI, Jenkins, and doing a terraform migration for their resources. It also encompassed working with an AWS EC2 auto-scaling plugin to scale instances on amount of jobs needed. I worked at lot with AWS resources implementing an AWS Lambda function, ECS cluster management, and Ansible scripts for the instance setup.
Co-op 5: LinkedIn (Fall 2019)
This was my fifth co-op and first co-op in California. Specifically it took place in Sunnyvale.
When I got Okta I was amazed at the stuff they gave. Then I went to LinkedIn and the amount of swag, food, and overall gear from vending machines was insane. It was another level on top of Okta. The “glitz and glamour” stuff is too much to list, but off the top of my head
boba on Tuesdays,
taco tuesdays, great america intern event, bikes on campus, the gym, free caltrain pass (rip not anymore), etc. I no longer worked in a single floor in a building but I walked around a small village of buildings that were all owned by one company.
Co-op 6: TheTradeDesk (Winter 2020)
This was my final internship that I found externally of WaterlooWorks since CECA wouldn’t let me use WaterlooWorks 6 times. I was originally offered the SF location, but I asked for Seattle/Bellevue since I had just spent the 4 months prior in California at LinkedIn. I ended up spending 6 months at theTradeDesk due to coronavirus circumstances and Delta cancelling my original flight back to Canada.
The office was quaint and reminded more of the Okta, Zenefits style in amenities. (meaning no more free food, but that was good cause I got to cook more) Our office played a card game called “Dominion” a lot. It is a pretty fun game.
I was working on the data-processing team which dealt with logs and was working in the infrastructure layer working with logs, dbs, and schemas. My intern project specifically dealt with schematizing log files and performing code generation (in C#). This was a challenging project for a few reasons. I had to learn about C#, Avro schema format, and how it fit into the codebase. It also had hurdles of code generating.
Formally there was no “intern program” since I was the only intern among ~20 or so people in the office. I think there were other interns in other offices (Ventura, New York).
Comparison of co-ops
For purposes of comparison I’m only going to compare Okta (3rd co-op) to TheTradeDesk (6th co-op) for fairness of being software developer jobs.
- Career Growth
- Intern Program
- Intern Project
US places paid more than CAD.
This section is pretty subjective mix of my opinions. I put Okta and theTradeDesk tied at 2 cause I think both have amazing potential in the future. LinkedIn is 1 cause it is already an established company owned by Microsoft. Zenefits is 4 out of general risk since it hasn’t IPO’d yet and is the wild card.
This is weird to talk about since it is more about MY team/experience as opposed to the entire company (but it is hard to rate a huge company’s culture in a 4 month span).
Some places had free tech stuff in vending machine. Some didn’t. Some had fitness credits to spend on fitness stuff. Some didn’t.
This was the office space.
I had great work-life balance at Zenefits and theTradeDesk since it was a much more relaxed atmospshere.
I worked the longest hours at LinkedIn probably attributed to my lack of familiarity with UI stuff.
Vancouver > Bellevue/Seattle > SF > Toronto
I really enjoyed Vancouver. SF and Seattle are both fine cities as well. I think Seattle is very up and coming.
Zenefits and theTradeDesk didn’t have intern programs/specific intern events. (theTradeDesk didn’t even have other interns) It is also unfair to try to compare them since theTradeDesk internship was done during coronavirus quarantine so any fun events would have been cancelled anyways. Zenefits inches out theTradeDesk cause they had one quarterly event.
LinkedIn had the most comprehensive intern program with ~40 interns. Okta had a smaller intern program at ~30 across all offices (Toronto, Bellevue, SF, etc.)
This is a subjective field based on my interest, work required, and overall experience with my assigned intern project.
Okta: Full-stack web app for monitoring internal infrastructure.
Zenefits: Terraform migration at the infrastructure level working with AWS resources and CI.
LinkedIn: Integrating Storybook (Open source ui component explorer) with Glimmer
TheTradeDesk: Code generating C# code with Avro schemas
I tried to objectively compare the 4 developer co-ops as best as I could but they each occurred at a different stage of my career and each brought different things to the table. The most unfair comparison is theTradeDesk where I had to deal with coronavirus quarantine during ~4 months of the 6 months I was there. I was incredibly fortunate to get real-world experience before graduating and being able to be a part of many great teams. It gave me insight into development at large, medium, and small companies.