Posts Getting my summer 2021 internship + general tips and advice

Getting my summer 2021 internship + general tips and advice

During the summer of 2021, I interned at the University of Waterloo developing a website for the Software Architecture Group (SWAG). This blog post will outline how I got the internship and general tips and observations that I made.

Programming and extracurriculars


During quarantine in around May/June 2020, I improved my programming skills. I learned C++, Flask, and NativeScript. I first created a basketball statistic and live score app using NativeScript. Then, I participated in 4-5 hackathons (not performing particularly well in any of them).

In February 2021, I created a coding problem grading platform in Flask for my grade 11 computer science final project.

In the same month, I worked with a mathematics teacher in my high school to create an online, interactive version of a math textbook that the teacher wrote. I learned a lot about full-stack development by creating these projects and I added them to my resume.

Extracurricular plan

In February 2021, I was afraid. Afraid that my extracurriculars weren’t enough, so I made a plan as to what the summer and grade 11 would look like. My plan for the summer was to start a business through the Ontario Summer Business program. My plan for the school year would be to improve my competitive programming skills to try to make CCO in grade 12 and apply to be one of the executives of our school’s computer science club.

By March, I had been progressively losing interest in participating in the business program, but I still worked on my application. I also signed up for a LinkedIn account at this time and noticed that a few of my acquaintances had researched at universities, most notably the University of Toronto. I thought to myself, researching at a university seems like a good way to grow my network and learn more about computer science.

Getting the internship

Cold emailing

I created two email templates, one to email startups for internship opportunities and another to email university professors. To email startups, I searched for “top Canadian startups” on LinkedIn, went on their websites, and emailed their general inquiries address. To email professors, I went to the websites of large Canadian universities and emailed a few professors from each university’s computer science department. In total, I cold emailed around 40 startups and 50 professors. By this time, RBC’s Innovation Developer internship for high schoolers had expired, so I realized I was slightly late to the game. I also applied for general software developer intern roles through LinkedIn, but most of those were for post-secondary students so I didn’t hear back from them.

Out of the ~90 people I emailed, I received only three affirmative responses. These responses were:

  • Opportunity to volunteer at a coding camp organized by a university to teach middle school children
  • Opportunity to work on answering research questions related to computer science and issues pertinent to high schoolers (on a volunteer basis)
  • Request for a meeting to discuss internship opportunities

I did a meeting with the professor who wanted to meet and he gave me a few different opportunities, one of which was a paid internship to create a website for the Software Architecture Group at the University of Waterloo. I emailed him, telling him that was the opportunity that I wanted to work on. I followed up a couple of times and eventually, he responded by telling me that the group was keen on working with me.

After that, there was an opening for a high school software developer intern from IBM that I found through LinkedIn, so I applied for the four high school positions. I was rejected from all four, but I already had an opportunity so I wasn’t too worried.

Two days before the internship was scheduled to begin, I received an email requesting confirmation of my bank account details and my internship began!

Tips and observations


Here’s a general plan that I would follow if I were to look for a programming-related internship.

  1. Get decently good at something
    • Create a few open-source, polished projects
    • It may help to volunteer your programming services at a community level
  2. Create a resume (ideally using Microsoft Word or LaTeX)
  3. Create an email template, optimally two templates, one to email startups, another to email professors
  4. Add a call to action in your email (don’t make it open-ended)
    • One example would be to use Calendly and create a personal meeting link where the recipient can schedule a meeting
  5. Find professors from university websites to email
  6. Find startups from LinkedIn/general Google searches to email
  7. Apply to internships on LinkedIn and other job sites as well, even if the internship states applicants must be in a post-secondary program

In my opinion, it would be best to email at least 3-4 months before your intended internship period.


  • (Most) professors genuinely want to help students and are more responsive than startups (I received around three responses from startups and 15 responses from professors)
  • You don’t need to be the absolute best at anything
    • Don’t get too worked up if you make mistakes or struggle
      • It’s more about your communication and how you present yourself
    • I wouldn’t even consider myself “good” at software development
      • There are a countless number of people that I know who are more skilled than me
This post is licensed under CC BY 4.0 by the author.