Compiling success: lessons from PlayStation, Amazon and Tesla
Raymond Li is a fourth-year Computer Science student. He speaks about his experience working for PlayStation, Amazon and Tesla and how he landed a full-time job at Meta before graduating.
Raymond’s co-op journey:
Work term one and two: Raymond’s first and second co-ops were at PlayStation (Sony Interactive Entertainment), first as a software development in test co-op, then as a software development Engineer co-op. During his first co-op term, his role involved a mix of software development and automated testing. He also wrote a Chrome extension for PlayStation offices worldwide. Finally, he formed a team with other Waterloo co-op students and won the PlayStation global hackathon.
During his second co-op term, he worked on react native development for the PlayStation 5 (PS5) Control Center and completed an work term project where he made the first-ever PS5 easter egg.
Work term three: He then had a term as a software development engineer co-op. His role was comprised of distributed computing work, on DynamoDB at Amazon Web Services.
Work term four: Finally, Raymond was a co-op student at Tesla in the role of a software engineering co-op on the firmware build team, where he was responsible for ensuring that all the firmware for all Tesla products (cars, power walls, solar, etc.) was built efficiently.
Q&A with Raymond:
How did you land such impressive co-ops?
“Honestly, getting interviews was the most challenging part of co-op for me. I would routinely apply for 100 jobs each half cycle, 50 on WaterlooWorks and then another 50 externally.”
“All those applications would only result in one or two interviews.”
“I spent a lot of time ensuring that I would stand out from other students. I got résumé critiques and mock interviews from the computer science club and MathSoc. I also regularly did Leetcode.”
How was your experience living in so many different areas?
“It was definitely interesting.”
“Besides the two international co-ops, I also did an exchange term in Norway for my 4A term. It was interesting to see how people live in different places and experience different cultures. Even the West Coast, California culture is quite different from Pacific Northwest, Seattle culture.”
“If I were to compare all the places I’ve lived in, I’d say California is very techy. Startup vibes everywhere, everyone's trying to cold-intro you. You have all the big tech companies there too.”
“Norway is a very beautiful country, both in terms of its natural landscapes and in terms of its society and people. Norwegians are some of the best people I've ever met. They are awesome. It's a very Social Democratic country. So, your health care is free, and your education is free, the government even pays you money to complete your higher education.”
“The downsides are that the cost of living is high, especially for food. The high taxes mean you can't really make a lot of money in Norway.”
“Canada is a mix of Norway and the U.S., so you have free health care and while you don't have free higher education, it's a lot cheaper than in the U.S. The pay is better than Norway, but not as good as the U.S.”
“Then Seattle is probably the most Norwegian-like city in the U.S. It's got great landscapes, the people are very nice, and you still get the benefit of the high U.S. pay. Plus, there is no state tax in Washington state, so living there is much cheaper than living in California.”
How did you approach finding housing?
“For my co-ops, I used a service called Blueground.”
“Basically, they offer short-term, furnished rentals. They have a minimum 30-day stay and then they charge by the day.”
“You have to pay in full up front, but the benefit is that you get the same experience no matter where you are and they have housing options in most major U.S. cities.”
“When I was on exchange, I just found student housing through the university.”
“Another option would be to do an Airbnb for a week or two and then extend your stay privately with the Airbnb host, if they let you.”
Did the company cultures differ?
“The company cultures were very different. PlayStation was honestly the best company to work for. I met Waterloo students there who had done five or six work terms at PlayStation.”
“At first, that seemed crazy, but while working there I realized they stayed because the company culture was just amazing. Everyone is super nice to each other, and you felt so respected and valued there, even as a first-year co-op student. I considered returning for a third term, but I also wanted to try out new companies.”
“Amazon was different and the culture there was very competitive. You had to be very fast on your feet and quick-thinking. You were working with some of the smartest people in the world, like the creator of Java was there working with us.”
“Tesla is a great experience for a co-op because you get such a wide range of work. You get to learn a lot, but you end up being slightly overworked. The work-life balance there was not as great as there weren't as many perks and events when compared to Amazon and PlayStation. It was amazing for my résumé though.”
What's next for you?
“I will be graduating after this term. I am excited to be done with school, but I'll miss a lot of things on campus like the clubs and events.”
“I love archery and the archery club on campus has unbelievably cheap membership and a very nice range. I will also miss the cheese club, where you get to try all sorts of different cheeses every week for an abysmally low cost and the Computer Science Club, where I was Sysadmin in 2022.”
“I definitely won’t miss the exams and assignments though!”
“After graduating I’ll be moving to Seatle and joining Meta as a production engineer. It’s a cross between software engineering and systems engineering, similar to site reliability engineering at other companies.”
“I think Meta is going to be a great place to work. I've heard they have fast promotions and a fun culture and they also pay very well.”
“I'll be working on the scaling of PyTorch. PyTorch is the backbone of all the popular large language models, like ChatGPT, but the main problem with it is that you can’t scale very well in terms of simultaneously training models on many GPUs (graphics processing units). So basically, the team I'm joining is looking to overcome that bottleneck.”
“I’m also interested in the startup world. I might explore that in the future too!”
Extra advice from Raymond:
Side projects
Don’t
- Do classic side projects (ex, calculator, chess/tic-tac-toe/Minesweeper)
- Make a game, unless it’s some really novel idea like Wordle (but don’t do a Wordle clone now)
- Try to remake something that already exists, unless you can make a big improvement
- Follow project-level tutorials. Make your own.
- Make a personal website: DO make one, but that doesn't count as a side project. Don’t list it on your résumé as a project.
- Use a drag-and-drop tool/IDE (i.e. scratch, WordPress, Mobirise, etc.) to make it. These are good tools under certain circumstances but don’t use them for side projects
Do
- Look for something you need or want to exist but doesn’t yet.
- Pick the right programming language. If you want speed use C++. If you want AI use Python. If you’re writing a Linux script use Bash. If you’re making a webapp use JS/TS and React. Also consider that the languages you use in your projects will dictate the jobs you get.
- Jump into coding. Don’t bother planning out side projects.
- Put it on GitHub. Git is a required skill and this is a great time to learn it. Use a GPL/MIT license so others can use your project.
- Document your code. Write a good README. Use plenty of informative comments.
- Turn your side project into a business idea!
Co-op
- Take advantage of mock interviews and résumé critiques.
- Don’t apply to jobs you aren’t interested in, or you don’t have matching experience for.
- If you don't find a first co-op, don't sweat! Do an E-co-op, or the WE Accelerate program (partnered with Microsoft!)
Exchange
-
- Learn the local language while you're there. There's no better opportunity for that kind of immersion. You may have to apply early to get into a program, check with your host school.
- You pay Waterloo tuition, your plane tickets, and housing/food/etc. There are scholarships that you can get to pay for some of these costs!