This is a post detailing my time at UWaterloo CS from 2014 - 2020. It is now completed. I got the idea to do this from Robert Elder’s UW Journey.
Table of Contents
- Fall 2014 (1A)
- Winter 2015 (1B)
- Spring 2015 (Break)
- Fall 2015 (2A)
- Winter 2016 (Work Term #1 at Intrafinity)
- Spring 2016 (2B)
- Fall 2016 (2B)
- Winter 2017 (Work Term #2 at SurfEasy)
- Spring 2017
- Fall 2017
- Winter 2018
- Spring 2018 (Work Term #3 at Okta)
- Fall 2018
- Winter 2019
- Spring 2019 (Work Term #4 at Zenefits)
- Fall 2019 (Work Term #5 at LinkedIn)
- Winter 2020 (Work Term #6 at TheTradeDesk)
Coming out of high school I wasn’t really sure what I wanted to do. I really enjoyed sciences such as chemistry and physics but I also enjoyed business courses such as economics after taking AP Microeconomics, AP Macroeconomics. I was also an active participant in Model UN and DECA and that molded my interest in business as well. When I was choosing universities what stuck out to me was Waterloo’s co-op program and I decided to go to Waterloo in Fall 2014 for science and business since it seemed to mix both of my interests in science and business.
I didn’t take any computer science courses in high school, and in hindsight, I should have at least tried them out while in high school. I did take a lot of AP courses which occupied my time. (AP Math, AP Physics, AP Microeconomics, AP Macroeconomics, AP Chemistry)
Fall 2014 (1A)
I entered the University of Waterloo Science and Business Program with a specialization in chemistry. I was interested in both facets and I was extremely excited to be a part of the program. The only time I had ever lived away from home for a prolonged period of time was for Shad Valley, where I went to Halifax and stayed at Dalhousie University for a month. It was an amazing experience to see the (far) east coast of Canada. Here’s some photos from Shad Valley:
Winter 2015 (1B)
Spring 2015 (break)
Update: Didn’t renew the domain so site is rip.
Fall 2015 (2A)
I planned to switch into Computer Science (The switch would take almost a year since I needed CS 116 and CS 136 and meet certain mark requirements) I met with advisors, and embarked on a long journey to transfer faculties and programs. At the time I was unsure of the decision to switch. I was unsure if it would be better in the end. After some thought I decided to switch programs.
Winter 2016 (Work Term 1)
Spring 2016 (2B)
I arrived back for an academic term in the spring. I took CLAS 104, CS 116, Math 135, and Stat 230. I liked CS 116 using Python. Although Math 135’s math proofs were a bit rocky I ended up doing pretty well in the course and by the end I enjoyed the content overall. (Mod and complex-numbers and n-th roots were my favourite concepts taught in the course)
Fall 2016 (2B)
I switched my co-op stream around, so I was supposed to be on co-op during this term, but I wanted to take CS 136 and get into the CS program. I took Math 136, Stat 231, CS 136, ENGL 109, and Music 100. It is a little heftier of a term since it has 5 courses instead of 4 courses last term, but overall a manageable courseload.
This was my first experience outside of the country for a hackathon. It took place at Detroit, Michigan at the Masonic Temple. I walked in with a view of Hack the North, but got a different style of hackathon. The venue was a bit run down, but the interaction from people from University of Michigan and other universities was amazing.
Winter 2017 (Work Term 2)
It grew in size, got a new office, and expanded their product line, so the company was doing amazingly well, and I was happy to be able to make a meaningful impact to the company during a time of high growth. SurfEasy has since been bought by Symantec
Hackathons and Hackathons
I tried to code as much as I could during the term and go to as many hackathons as I could. My co-op job didn’t have a lot of coding and I wanted to travel when given the opportunity so I attended UoftHacks, QHacks, MHacks9, and HackPrinceton.
There were way too many photos, and it was an amazing experience. Mhacks and HackPrinceton were amazing hackathons in the US, and I highly recommend them to anyone. I actually didn’t even get accepted to HackPrinceton, but I still decided to try to get on the bus to try and work on my programming skills and see Princeton University. I went and luckily they let me in (begrudgingly). After HackPrinceton, I knew I really liked doing hackathons and creating ideas/projects/solutions through coding.
Here are two photos from UofTHacks and MHacks 9:
I was back in school after doing my co-op. Unfortunately there aren’t many hackathons happening in the summer months. Most Canadian hackathons take place in winter and American ones in the Fall. I planned on focusing on learning NodeJs and some more web development tools for backend dev. I’ve done mostly QA co-op jobs and I’d like to try to get a dev jobs.
I took cs245 (Logic and Computation), cs246 (Object-Oriented Software Development), cs251 (Computer Organization and Design), math239 (Intro to Combinatorics), spcom223 (Public Speaking). This was the hardest term I had taken so far (and yet it would get MUCH harder). I walked in expecting cs246 and math239 to be very difficult based on what people had told me beforehand. The term was a nice challenge for me, and I realized it will only get harder from here on out.
cs246: I would describe it as difficult as what people say it is. OOP is a pretty useful tool and learning C++ alongside it is useful.
math239: Interesting introduction to combinatorics.
Courses I took were cs240 (data structures), cs241 (mini-compilers), cs370 (numerical computation), and co342 (graph theory).
co342 with Martin Pei was difficult and I remember going to office hours every week. They had a 1-5 grading scale for proofs. You got a 4 if your proof was correct, but only a 5/5 if your proof was succint and correct. I didn’t get 5/5 on any of my proofs. (Martin Pei also took a photo of our class on the last day but he never sent it to us)
cs370 with Jeff Orchard was pretty good. I mainly took cs370 cause it is a prereq to graphics (cs488) cs240 was not too bad looking back and cs241 was fairly easy.
This was the term I tried to go to as many hackathons as possible. I went to PennApps XVI, HacktheNorth, Mhacks X, and EthWaterloo. I had to stop after I failed the cs240 midterm and I remember failing cause I had no sleep the prior weekend since I was at ETHWaterloo. I had planned to also go to YHack and HackHarvard but decided against it.
Hack the North
MHacksX was the 13th hackathon I ever attended and the first hackathon I ever won anything at. To go to the dedicated pages for each hackathon from my grand hackathon tour.
I took cs350 (OS), cs341 (Algorithms), cs349 (UI), co489 (Applied Cryptography), and co250 (Intro to Optimization). I remember this being a fairly challenging term taking 2 large CS courses, and 4 “cs courses” in total if you include co489. co250 also is no bird course either. I planned to take it since I only needed a few more courses to get a combinatorics and optimization minor.
I enjoyed cs341 because at this point I had been doing practice for interviews and algorithms seemed familiar. I really enjoyed cs341, the assignments were fun and straightforward. Alfred Menenzes is a good prof for co487.
OS was a whole different beast. I’ll comment on cs350 now with a more holistic view. I think it is a very good course that weeds out people similar to cs246. It throws you into implementing OS with a lot of prewritten code, you need to edit 5% of it, and you need to fix errors. Assignments are based on learning what you need to do, then implementing it. Unlike cs136 and cs246, you can’t walk in blind and hope to stumble upon the solution.
cs350 really makes you work for the assignments and understand what is going on behind the scenes, what you are doing, and unlike previous cs courses will punish you if you don’t know what you are coding before trying to code. That is also why I ended with a 52 in the course. I decided to skip A3 (page table implementation) and go to HackPrinceton2018 instead. We won a prize, but I also failed that assignment. Future readers, do not do what I did. (I was also still looking for a co-op at the time I went to HackPrinceton. I remember going home on the bus happy that my team had won, but I was reminded I still had to look for a co-op job in continuous round.)
Job hunting was also very stressful. I had the most interviews up until my WaterlooWorks career in the main round with 4 interviews. I felt really good about one of my interviews in main round. I had relevant experience and solved their question with ease. I had a great chat with the interviewer afterwards. Unfortunately I got ranked and moved to continuous round with 3 not ranked and 1 ranked.
I had 9 interviews total in continuous round.
One company interviewed me and did not ask me a coding question it was all behavioural stuff. Up into this point not only had no company given me an offer but I was feeling nervous that I wouldn’t even get a developer job (as a 3A student). I was applying externally and trying to find other avenues as well since WaterlooWorks wasn’t looking good. That company ended up giving me an offer on WaterlooWorks in continuous round.
I was skeptical of the job (since their interview didn’t wow me) and decided to rank it a 4 (by not giving it a 1, someone who was ranked giving it a 1 means they got the job). I was not matched with the job. After this decision many people were stating that I was throwing away the only offer I had and I was crazy. I had around 6 interviews up until that point that were all rejections and it did seem crazy to throw away the only offer. Personally, I felt that the job did not nearly impress me in the same way an interview should have a company be impressed by you. So I rejected them.
I always tried to abide by two principles:
- Never gamble more than you can handle (relating to your ability to handle stress)
- Gamble when you get the chance and always bet on your abilities to do something remarkable
I have the belief that you need to put in work and dedicate your time to continuously improving yourself. That way you challenge what you can accomplish. In this case I got lucky, and I gambled. Sometimes it doesn’t work out this way. And when people ask sometimes how it happened, I guess I was willing to take risks. It was incredibly difficult though after tossing out the only offer I had AND THEN go back to failing interviews in WaterlooWorks for jobs I wanted. You feel incredible remorse after that.
Days before the start of exam period, 200 people applied for Okta soft eng intern position on WaterlooWorks in continuous round. They interviewed 3 people. The interview was 3 hours long. It was filled with technical rounds, behavioural questions, and talking to the manager. Two days before exams I got the offer from Okta. That is how late in continuous round I found the job. And with that, I secured my first ever developer internship.
Spring 2018 (Work Term 3)
This term I worked at Okta in Toronto. This was a great experience as my first developer job. Okta in Toronto was an unbelievable place to work at compared to previous co-ops in terms of the development environment, my role in the development team, perks (lunch Monday, Wednesday, Friday), and intern program. I participated in their events and won their intern hackathon and won their smash 4 tournament. Small feats but I had tons of fun during the internship.
I also attended a hackathon called “RedBull Adrenalan”. It was a crazy gaming tournament and hackathon crossover. The photos I got were pretty sick from the event with the gaming logos and overall aesthetics of the venue.
At the end of the internship, the team at Okta told me that they were not extending a return offer in any capacity, intern or full time. It was an unfortunate time when that happened since my performance at Okta did not warrant a return offer. It took me a while to accept that out of the 5 interns at Okta (in Toronto office) I was the only one they were not giving a return offer. Of the 4 other interns, 3 did return for full-time.
Looking back on this experience it was very depressing since it was my first developer job and seriously put doubts in my mind for being a developer in the future. Looking back on this almost three years later, I can see why they chose not to extend the offer. I had areas in improve in for the future and I was much earlier in my career than some of the other interns.
I continued to do interviews even while interning at Okta. I had two major beliefs in my mind:
- don’t be satisfied, Okta is great but I want to get another developer job (possibly California)
- I still have 2 more co-ops left so I want to take each co-op experience and try to greatly improve upon it each time
In regards to the second point, I felt rushed. Most students have 6 co-ops terms with a gradual progression from basic developer jobs to better intern positions. I did not have that luxury where I was only granted 5 co-ops (I tried to get 6 but the co-op office refused to let me) and I had spent the first 2 on non-developer co-ops. That meant I really started with 3 co-ops and had 2 more developer internship chances left. I can’t complain, I was placed in a fortunate position of being able to switch into Waterloo CS, and getting Okta in the first place. But it only meant there was a lot of hard work needed to be done in the future.
This term I took cs488 (graphics), cs343 (concurrency), and cs456 (networks). Just those three threw me for a loop. I wanted to do at least one of the big 3, because it was a long enough journey to reach the upper year cs electives. I wanted to challenge myself. It was challenging, but graphics is probably the easiest of the big 3 (cs444 compilers, and cs452 trains being the other two). I still recommend people taking it for a challenge even if you most likely will never be making a ray tracer or using OpenGL on a low level in your full time work. Continuously push yourself.
Concurrency (cs343) was also a valuable course. It is in micro c++, Peter Buhr’s custom C++ with concurrency. I really liked the course. The blog that sparked my interest in it? Robert Elder’s blog link. You will most likely never use micro c++ on the job, but the concurrency concepts challenge you in a similar way to full time. You are given assignment specs 4-5 pages long and you need to decipher the information and do the assignments. Details are sometimes murky, you need to clarify things, but that is software engineering in a nutshell.
Networks was just simple and solid. Not too much happening but that was probably a good thing with graphics and concurrency taking most of my time.
I only attended PennApps XVIII and MHacks 11 this term. I did want to focus more on interviewing and less on hackathons.
I was also interviewing at this time. I wanted to get a summer 2019 internship preferably in the states. So I applied externally since I did not have WaterlooWorks access until Winter 2019. None of my interviews worked out. One interview I had to fly out to London, England for an onsite (which I unfortunately failed) in the last few weeks of the term when the final projects for graphics, concurrency, and networks were all due. I would have loved to stay longer in London, but time did not allow me. (I spent less than 24 hours in London. This includes sleep hours and the interview time)
After this term I had completed ALL my course requirements for the Bachelor of CS. Luckily I did not fail graphics because it was a intensive course. The ray tracer demanded more time than I gave it with the interviews going on and the cs 343.
This term I took cs454 (distributed systems), econ212 (game theory), and co353 (computational discrete optimization). I took distributed out of interest, econ212 for fun, and co353 to finish my combinatorics minor. I liked econ212 cause you play games and test out your game theory strategies. I did much better in cs454 compared to cs350 despite it being similar working at the OS level. This time I did the assignments and didn’t skip and to go to hackathons.
I continued interviewing this term for internships (recurring theme). I had an offer from a place in SF. They were decent. I liked them and the interviews seemed promising. The only problem? I was interviewing concurrently with another company that I liked a little more. So I decided to decline the offer. I eventually was rejected by the company I liked more. So that situation did burn me when taking a risk doesnt always pay off.
I also was interviewing on WaterlooWorks. I had two interviews in main round, one of which were Zenefits. This makes sense the jobs I was applying for were now more competitive. I got not ranked from both. So like past job hunts I went to continuous round. In continuous round I continued to apply. I applied to Zenefits again in WaterlooWorks.
I interviewed externally with a California company and I passed the interview. They made some verbal promises about the offer and when I received the offer letter, it did not state a few things they stated. When I asked about it, they stated that what they told me was only for full times and not interns. So I declined it out of lack of trust over the entire internship. If a company is willing to promise you things and then go back on their word I wasn’t willing to go to them just because they were located in California. I had wanted to get a “California job” for so long but it would have to wait. And just like that I had rejected the only California offer I had.
Zenefits interviewed me again in continuous round and this time I passed the Zenefits’ interview. So for the first time I was headed to Vancouver for a co-op.
Spring 2019 (Work Term 4)
I worked at Zenefits in Vancouver this term. This was probably the best accidental experience ever. I was really aiming for California but Vancouver was amazing. I loved the UBC area and working in downtown Vancouver.
I continued to interview for internships (common theme throughout all of my terms) at Zenefits (since technically I had 8 month co-op from Spring 2019 and Fall 2019)
I used WaterlooWorks. Officially I wasn’t in Waterloo so I couldn’t even go to the Tatham Centre for interviews. I had to schedule them all virtually. I had 0 official interviews through the “official waterlooworks system”. I had 3 interviews scheduled externally. I passed two of them. I passed the Amazon interview but they said they “ran out of spots”. So I went with the only offer I had which was LinkedIn for UI Engineer intern. UI wasn’t my specialty, but I decided to run with it.
Fall 2019 (Work Term 5)
After many years of grinding for interviews, I had gotten a developer job in California. Was the feeling as gratifying as I had always hoped it would be? It wasn’t. If anything I had felt it was disappointing with how I envisioned the gradiose nature of getting it would be. You yearn for something so long, you picture it as the ultimate goal and when it actually becomes true it is ultimately very disappointing when it is a reality. Something hyped up that much really describes the phrase “never meet your heroes, you’ll only be disappointed”.
That doesn’t take away from the LinkedIn internship. The attainment was disappointing, but the internship was not. In the way Okta shocked me as my first developer job, LinkedIn and the Bay Area shocked me in a larger way. The area was ruled with tech. Engineering was the focus and the perks and benefits were out of control. It was a mini-paradise.
I continued interviewing (continuous motif) for internships at LinkedIn. I decided to go to a place called “TheTradeDesk”.
Winter 2020 (Work Term 6)
I spent the winter months of January to June in Bellevue interning at a company called “TheTradeDesk”.
Seattle was really nice. I got to explore Seattle for January to March before covid-19 restrictions made me work from home. Our office had nice events for the ~20 people and we had catered lunch Wednesdays and Fridays alongside snacks and a stocked fridge. Reminded me a lot of my internship at Okta.
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).
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.
In Winter 2020 I took one online course and graduated while doing my internship in Seattle. After close to 5 and a half years I finally completed my degree, a Bachelor of Computer Science degree with a minor in Combinatorics and Optimization (with Co-op). It was fairly anticlimactic since I had completed my degree requirements back in 2019, but I wanted to do more co-ops and courses. I told the registrar I was “applying to graduate” and got approved.
“In the end”? Nothing ends Adrian. Nothing ever ends.
- Dr. Mahattan
I attended the University of Waterloo that notoriously has a bad rep for having a poor social life and is only academically focused. I cannot truly compare between other places like UofT, UBC, or the countless US schools I visited. It is what you make of it.
I usually say university is a balance between:
- co-op jobs
- social life
- mental health
The people who can efficiently balance all 5 are few and far between and most people can only choose 2-3 of these and execute effectively. If you choose to have all 5, you often do a poor job addressing all of them. Despite this page being called
my-story I will admit it is a heavily edited and skewed story that leans towards moments of great accomplishments or periods of change in my life. Not everything is as dynamic or picturesque as this, and I feel in some way responsible to say that these are only the “highlights” of my undergrad. There were just as many “lowlights” that were not mentioned in as much detail:
- In 2017 I was unable to find a developer job for my co-op, I had to work in QA
- I applied to Hack the North 4-5 times and Hack MIT 3-4 times but never got accepted
- I failed to win anything at the first 12 hackathons I went to (despite people telling me it was very easy to win at hackathons)
- I got 52% in CS 350 (Operating Systems)
- I was unable to find a co-op job for summer 2018 after months of interviewing and went to continuous round, later going to Okta
- I got a ‘very good’ co-op evalution from Okta (which is actually a mediocre evaluation) and I didn’t get a return offer from Okta
- I was unable to find a co-op job for summer 2019 after months of interviewing and went to continuous round, later going to Zenefits
- I often felt that my social life and mental health were very poor during my undergrad
- there were moments on intense pressure either from school coursework, or trying to get a “cali” co-op and I buckled under the pressure
- I tried multiple times to place in the Waterloo local ACM contest (to potentially be on the ICPC team) but I never made the team out of roughly ~5 attempts
These are my marks, ordered chronologically.
|AFM 131||83||Intro to Business in N.A.|
|Chem 120||72||General Chemistry 1|
|Chem 120L||75||General Chemistry Laboratory 1|
|CS 115||75||Introduction to Computer Science 1|
|Math 127||89||Calculus 1 for the Sciences|
|SCBUS 123||85||Workshop 1: Science and Business|
|Chem 123||83||General Chemistry 2|
|Chem 123L||74||General Chemistry Laboratory 2|
|CS 100||88||Introduction to Computing through Applications|
|Econ 101||88||Introduction to Microeconomics|
|ENVS 195||87||Introduction to Environmental Studies|
|Math 128||79||Calculus 2 for the Sciences|
|SCBUS 122||85||Management of Business Organizations|
|Chem 220||68||Quantitative Chemical Analysis Laboratory|
|Chem 264||62||Organic Chemistry 1|
|Phys 121L||80||Mechanics Laboratory|
|SCBUS 223||80||Workshop 2: Strategies Behind Technological Innovation|
|CLAS 104||72||Classical Mythology|
|CS 116||87||Introduction to Computer Science 2|
|Math 135||82||Algebra for Honours Mathematics|
|CS 136||92||Elementary Algorithm Design and Data Abstraction|
|Engl 109||93||Intro to Academic Writing|
|Math 136||72||Linear Algebra 1 for Honours Mathematics|
|Music 100||78||Understanding Music|
|CS 245||63||Logic and Computation|
|Math 239||55||Introduction to Combinatorics|
|CS 246||74||Object-Oriented Software Development|
|CS 251||73||Computer Organization and Design|
|Spcom 223||89||Public Speaking|
|CS 240||72||Data Structures and Data Management|
|CS 241||73||Foundations of Sequential Programs|
|CS 370||67||Numerical Computation|
|CO 342||60||Introduction to Graph Theory|
|CO 250||59||Introduction to Optimization|
|CS 349||85||User Interfaces|
|CO 487||67||Applied Cryptography|
|CS 350||52||Operating Systems|
|CS 343||75||Concurrent and Parallel Programming|
|CS 456||61||Computer Networks|
|CS 488||60||Introduction to Computer Graphics|
|CS 454||67||Distributed Systems|
|CO 353||57||Computational Discrete Optimization|
|Econ 212||72||Introduction to Game Theory|
|Bet 100||82||Foundations of Entrepreneurial Practice|
My highest marks:
- Engl 109: 93
- CS 136: 92
- Math 127: 89
- Spcom 223: 89
- Econ 101: 88
- CS 100: 88
My lowest marks:
- CS 350: 52
- Math 239: 55
- CO 353: 57 (I hated this course)
- CO 250: 59
- CS 488: 60
- CO 342: 60
One thing I regret is that I never put a lot of effort into school. I often felt that I did not learn best in the conventional way of studying from a textbook, writing notes, and listening to lectures. A lot of times I had trouble paying attention, remembering concepts and falling asleep in class.
What if I failed to switch into CS?
I don’t know.
Co-op Competition (in Uwaterloo)
I travelled around North America and met tons of people through hackathons or co-ops. I am very fortunate to have met a fairly diverse group of people and spending time learning about them.
Some people in highschool are accomplished and motivated and continue this path in university. There are others who fail to reach their potential after being the “top of their class” in highschool. The fish in the small pond sees the ocean as university brings the people who are “the best of their area” and brings it to a much larger scope.
Survivorship bias makes us see all the successful people and not view the less successful people. In many ways we aspire to be them and disregard the other people who are not seen. I liken it to the concept of athletes and celebrities predate this notion early in our childhood. In reality, we know nothing about these role models and want to be like them because of what they have and what we don’t. These people are lauded as role models because they are good at some facet of life (perhaps they can play a sport well or act in our favourite movie). We almost never hear of the many failures or hardships that occurred.
The waterloo co-op scene is competitive due to perceived prestige from co-ops over others. We have this perception because someone has a co-op in a certain location (California) or from a specific company (FAANG) and we assume they are special or smarter than someone who doesn’t have it. The reality of this is that your job doesn’t mean much more than what it is, a job. I’ve made this mistake in the past, and I’ve seen people treat their job as their identity. You identity is comprised of your job, but it shouldn’t entirely be composed of your job or co-ops. There is more to life than that.
I don’t think there should be moments where you don’t help someone. Either in coursework, interview prep, or otherwise in life. I still remember when I switched into CS and I knew nothing. Many people feel like this and although this is fairly obvious statement, helping someone else is not a detrimental thing. It is a net positive for everyone and yourself. When we motivate one another to do their best we collectively succeed. I always felt it was important to give back in any way possible. Whether it be being an orientation leader, mentoring others, or helping others achieve their goals.
Tech is plagued by people trying to prove they are worthy and better than others. This behaviour might be spurned upon by the broadness of the field, the general insecurity of people, or the false positive/negative litmus test they conduct during interviews. I’ve already said my interviewing thoughts in a separate post, but I think it extends beyond that. The most important thing is to be a good person. The accomplishments are secondary. As vague as that sounds, I think it is really important to not lose our humanity, remembering we all have our flaws.
There comes a time in everyone’s life where things end. University ending and a full-time job starts. Nothing in life really “ends” in the traditional sense. (akin to the Watchmen comic I showed above) I’m still tied to Waterloo in some sense when I talk to people who either recently graduated, are looking to graduate soon, are starting out undergrad, or looking to apply to Uwaterloo.
When I look back, the hardships that impeded my success early on served as guidance to where I would eventually land. There were things I believed to be prophetic of success and things I would work towards that would eventually have no impact overall. Other small things I didn’t even notice ended up having substantial impact on me without me knowing at that moment. It is hard to truly predict your path.
I did not envision graduating with a CS degree in 2014. I started as a Science and Business Major and deciding later on that it wasn’t a good fit for me and switching to CS
I would take some math upper-year courses like co342 (graph theory) with some people from my 1st co-op (years after that co-op)
I ended up doing a co-op in Vancouver by accident and it ended up being my favourite internship of them all
In 2017 I was unable to get a software engineering co-op. Three years later I did an internship at LinkedIn.
I went to multiple hackathons and failed multiple times. I had projects that melted down and people didn’t want to team with me. I was persistent on winning one after 12 failed attempts at MHacks X.
I went to University of Waterloo initially to stay close to home, but eventually I wanted to travel North America. I ended up going to Vancouver, California, and Seattle for internships.
Okta was my first tech internship, and it also did not give me a return offer. At the time it was immensely disappointing. I realized later on that even if it had given a return offer, my life would not be substantially altered, I probably wouldn’t have taken it. If anything I had to learn from the experience and their feedback.
If you made it this far thank you for reading. I might make a part 2 if I find enough things to write about that are interesting. For now, I am on semi-hiatus as I do the hobbies I enjoy.