UWaterloo SE 2A Reflections

UWaterloo SE 2A Reflections

Hello! Its been a while since I last wrote anything here, I think now is a good time to finally catch up. Just yesterday I got all but one of my course results back, and about two months ago for my next Co-Op destination.

I think this term felt a lot more enjoyable than previous two terms. Could be due to the increased amount of relevant-field-related courses I have. Just to make sure we're on the same page, I'm currently taking:

  • ECE 222: Digital Computers
  • SE 212: Logic and Computation
  • CS 241E: Foundations of Sequential Programs (Enriched)
  • STAT 206: Statistics for Software Engineering
  • SPCOM 223: Public Speaking
  • CHE 102 (supposedly): Chemistry for Engineers

I'll talk about them one by one.

ECE 222 [Digital Computers]: I think it is an interesting course, definitely have some overlap with CS 241(E). If you like writing Assembly code you're in for a treat. However, our prof is obsessed with us knowing the history and many conceptual design topics. So the midterm and final was basically what I call biology for computers. (Disclaimer: this is only with Prof. Agnew, other ECE 222 profs allegedly have way harder and theoretical exams)

SE 212 [Logic and Computation]: Probably the most interesting course I found this term. We learn about formalization of natural language, set theory, program verification / specification / correctness. An example would be: all kids are scared of vampires; some vampires fly; thus, all kids are scared of something in the sky. Like it make sense linguistically, but we had to prove this formally using natural deduction and predicate logic. This may sound not that useful, but formal verification is actually a really important job in many mission critical systems. Or something like they give you a recursive function that computes Fibonacci number, you are tasked with mathematically proving its correctness.

CS 241E [Foundations of Sequential Programs (Enriched)]: Well... This course is probably the hardest course for me this term. It really takes an insanely time to do any of the assignments after assignment 5. We're basically building a programming language from ground up, starting from converting binary to parsing the syntax of our LACS language. If you like compilers, you'll love this course, but I don't think compilers is for me. But its a great course to be fair, you get to learn stuff like Scanning / Parsing / Garbage Collection, etc.

STAT 206 [Statistics for Software Engineering]: Basically AP Stat + more probabilities - graphing calculators. Instead of plugging into calculator to find distributions, we have to do integral and find them ourselves. I think it is an interesting and definitely useful course!

CHE 102 [Chemistry for Engineers]: Straight up Ontario Grade 12 Academic Chemistry. However, I can't comment on it that much because I withdrew from the class basically less than a month in. (Because I'm planning on transferring to CS, and I don't need a chem credit. I'll talk about why I'm transferring in another later post.)

2A Co-Op: Not FAANG, but still great :D

Alright enough about courses, lets talk about my CO-OP hunt.

Well lets just say I cali and busted :( (ok I personally don't really care if it is cali or not, but I'm just using this term to represent good US tech companies). So what happened?? Well in short, I didn't get the chance to use the LeetCode skills that I practiced during the summer this term at all. Instead of failing interviews, I failed to get interviews to even begin with. I mean, I think the main reason why its because my previous co-op isn't very well known, and for recruiters who doesn't really know A Thinking Ape, they might have just failed me during resume screening.

Fortunately, I still landed a pretty good job within Canada. I'll be working as a Machine Learning Engineering Intern at Shopify. I'm optimistic for my next coop (after Shopify), because, I believe Shopify has a pretty big name and it is also publicly listed on NYSE and TSX. So, fingers crossed 🤞 next coop I hope I can break the good US company barrier. Still not clear on what I'll be doing at Shopify, but something along the lines of recommending products to users based on past activities and popularity and/or rebuilding their data pipe-lining (sounds boring, but its actually a lot of distributed systems stuff which is really useful and cool :D). I'll be working in Toronto so let me know if you want to meet up :), I really like to meet new people 😁.

Well you might wonder, Mark did you just got this one choice? Uh (time to weird flex, jk), no, I had other choices as well. They were: Toast in Boston or Mercari in Tokyo. Why did I chose Shopify instead? Well in short, better-known brand, decent pay, cool team, close to home, free food every day. It was a tough call between these three not going to lie. Toast is an US based company, Mercari is in Tokyo!!!!!, and Shopify had really good team placement. Honestly I'd be happy if I ended up in either of the three, but all things considered I still picked Shopify (I'm also supporting the feeble Canadian tech industry).


Uhmm plans for my co-op term are:

  • Leetcode (at least 3 a week)
  • STAT 230 online course (CS requirements)
  • Complete one polished side-project
  • Workout regularly
  • Be fluent at my tasks at Shopify
  • Ski trip with the boiz

Its a lot, yea but I think I can do it!!!

Anyways... thanks for reading! Honestly I have no idea how many reads my blog because I don't have metrics tracking it (I really should). So if you actually read until here please pop me a message on FB or even send me an email ([email protected]) so I know you exists! Thanks for reading!

Merry Christmas!!!