This is meant to be a summary of my time at the University of Waterloo. I was admitted to the Computer Engineering program in Fall 2019, and my (expected) graduation year is 2024. I was inspired to write this after reading Jonathan Tsang’s story, and I’ll be adding to it as time goes on.

(This post was written way before I created this blog, but I am only getting around to editing and posting it now.)

Admission Process

I applied to UWaterloo as an international student in late 2018 and received my offer of admission in mid-May 2019. In what I now know to be a rare case, I only applied to ECE (not SE/CS) because I was interested in an engineering degree that could give me hardware experience. At the time I received my offer, I had already accepted an offer for CS @ UCLA, but I decided to attend UW mainly due to its co-op program and (relatively) cheaper tuition.

27788cac22c687c8f963ff1d1cfdbe42.png

In terms of my grades, I had a 94% in Grade 12, 1560 SAT, and 5/5 in 3 AP Exams (Physics C: E&M, Calculus BC, and Computer Science: A). I was part of multiple clubs (Model UN, Programming, Hackathon, etc.) and the school band during high school. I have been told that extracurriculars don’t matter as much for UW Engineering programs, but I’ve found that most international students I know at UW had great extracurriculars. Outside of the President’s Scholarship that most people receive due to their high school average, I also received the Engineering International Student Scholarship ($10k).


1A (Sept 2019 - Dec 2019)

I was admitted into Stream 4, which meant that my first internship was in January, which meant that I had to start the job search immediately. This was by far the busiest 4 months of my life, with 6 courses + co-op Search + living alone for the first time + being in a new country. I ended 1A with a 93.5%, which put me in 4th rank among the 200 or so students in my class, and placed me on the Dean’s List.

ECE 105 (Mechanics)

This is considered to be the hardest course in 1A, and rightly so. The concepts are very similar to the concepts I learned in AP Physics, but applied at a much higher level. The labs of this course were interesting, but not a huge step above what you see in high school. Keeping up with problem sets and getting used to dealing with ridiculously complex questions is the trick to doing well.

ECE 150 (Fundamentals of Programming)

This is your typical “Programming 101” course, taught in C++. Most of the content was something I already knew but taught at a deeper level. The quizzes were time-limited programming challenges (Marmoset), which I personally did not enjoy too much, though most people did do well on them. The class average for the midterm was brutal because, as it turned out, the level of detail and speed expected by the professors were much higher than what we were able to do. This was probably the most important course for me in 1A, despite a lot of the content being repeated. Humble Brag: I received a perfect 100% in this course :D

Math 115 (Linear Algebra)

Don’t remember much from this course, except it was a lot of matrices and linear algebra. Really important content for your other courses in upper years, but wasn’t too hard overall.

Math 117 (Calculus 1)

The course was half differentiation and half integration. If you’ve never done integration before, this course can be extremely challenging. Otherwise, it should be relatively easy.

SPCOM 192 (Communication in Engineering)

Also known as “that one English class all Engineers have to take.” This course involved writing essays, public speaking, and quite a bit of reading. This course happened in really small classes and had multiple professors with varying content and difficulty. The class average for my class was low-mid 80s, while other classes had an average in the 90s.

ECE 190 (Engineering Profession & Practice)

Still not entirely sure what this course is about. It had to do with ethics and the Engineering profession in Canada, but the TopHat quizzes felt more like random trivia. There were also some completely irrelevant “group projects” (making the best paper airplane, for instance) you had to do, which I think was their way of fostering the engineering spirit in us. It didn’t really work, but this course was a massive mark booster for many people including me.


Co-op 1: PointClickCare (Jan 2020 - Apr 2020)

For my first co-op, I got to work at PointClickCare at their Mississauga Office. I worked on the Nutrition Management System which is a tool used in Long Term Care Homes to manage dietary restrictions and food service. I got to work heavily with Java and JSP and also worked on a Microsoft Azure project that was meant to ingest large amounts of customer data into the NMS. At the time of writing, this is also the first, only, and last time I worked in person due to the arrival of a certain virus in March 2020.


1B (May 2020 - Aug 2020) (Online)

This was the first of many 100% online terms. I did this term living in a tiny room in Mississauga with pretty much nobody around me. It was a pretty boring term, to say the least since it was hard to find motivation when it felt like the world was on fire. Interestingly, my grade for 1B was 93.27% which is almost identical to 1A. The class average was around 10 points higher, though. I was on the Dean’s List again this term.

ECE 106 (Electricy and Magnetism)

This course is like ECE 105, but for E&M instead, but also much harder. This was by far the hardest course of this term, with the exams being especially brutal. The lab was extremely stupid and basically amounted to screenshotting magnetic field lines and throwing them in a lab report. It’s understandable since they had to come up with a scrappy online “lab” with a few weeks’ notice (I have heard this course has interesting labs in person). There was a small group video project where we had to design a Rain Gauge Sensor, which was relatively fun and an easy way to boost your grade.

ECE 140 (Linear Circuits)

This is the first truly “EE” course we take, which meant that it was also one of the most hated courses among CEs. The concepts are fundamental to the rest of the EE courses you take, and the exams were extremely difficult because the professors don’t hold back in their degree of circuit complexity. Having a deep and perfect understanding of complex numbers is essential, and you should invest in a scientific calculator that can do complex numbers.

ECE 124 (Digital Circuits and Systems)

This was a very interesting course since it introduces you to some of the basic concepts that go into low-level hardware design, such as gates and Finite State Machines. The labs of this course were also very interesting since they involved you using VHDL to state machines for real-life systems, such as a grappler hook in a machine.

ECE 108 (Discrete Mathematics and Logic 1)

This was a fairly bland course that introduced mathematical logic and axioms. Assignments felt like throwing a dart blindfolded and hoping the TA understands what you’re talking about. I think the content is somewhat interesting, but Logic courses in ECE (including 208) suffer from poor teaching.

MATH 119 (Calculus 2)

This was by far the most well-taught course this term (Zack Cramer). The content is obviously essential for later courses, and luckily the lectures and course notes did an amazing job in helping you intuitively understand them. The class average for this course was very high because the professor wasn’t too keen on making sure the average was “in-line” with in-person terms, which I appreciate.

ECE 192 (Engineering Economics)

This sounds like a course that talks about how economics impacts engineering firms and projects. Instead, it is a course that talks about how to use excel to do compound interest in 100 different ways. Possibly one of the worst courses I’ve taken in my degree so far.


Co-op 2: Telus (Sep 2020 - Dec 2020)

I worked on the Telus Health team this term, building off of my experience working in health tech at PointClickCare. Unfortunately, due to the large size of the team and company, I was mostly delegated to working on small features, bug fixes, and automation tests. I did get to work on some interesting database projects, but not to a high enough degree since the company was unwilling to assign large projects like these to a 4-month intern.

(Year 2 is WIP)