Software Engineering
2018 Class Profile
University of Waterloo
Andy Zhang, June 2018

About the program

The University of Waterloo’s Software Engineering (SE) is an interdisciplinary program supported by both the Faculty of Mathematics and the Faculty of Engineering. For 5 years, all 141 graduating students of the class of 2018 spent 8 semesters in school with similar schedules as well as 6 co-ops.

SE is commonly compared to Computer Science, and is often seen as its more-constrained, engineering-oriented counterpart. Prospective students may wonder whether SE is the right fit for them, and whether they’ll enjoy the environment. This profile attempts to showcase who SE 2018 students are, what they've done, and how university went for students.

Preface

The findings in this report were derived from the results of a class survey. In total, 113 out of 141 (80%) graduating students responded. SE classes can vary significantly depending on the year, so generalize from this survey to other classes at your own risk.

Study terms are defined as 1A, 1B, 2A, up to 4B (8 terms). 4 month co-op terms occur after every study term starting after 1B and ending before 4B.

All analysis involving income is expressed in Canadian dollars (CAD). The exchange rate used to convert from USD to CAD depends on time and is stated where relevant. All salaries include monthly housing stipend or the monthly cost of corporate housing if applicable.

This class profile was inspired from the Systems Design Engineering 2017 Class Profile created by Joey Loi and Atef Chaudhury.

Table of contents

  • 1 Co-op
  • Companies, locations, salary, factors affecting salary

  • 2 Background
  • Gender, ethnicity, high school, family

  • 3 Academics
  • Grades, attendance, courses, factors affecting grades

Co-op

Companies

At least 300 companies from 58 different cities have hired an SE student. Students had the opportunity to work in many different types of environments, including working at a 5 person startup, writing code in Kenya, researching with professors, and working at a big tech company. While a majority of students were software engineers during their co-ops, some explored other areas such as design, product management, finance and consulting.

The benefit of having 6 co-op terms is that students get to explore different company sizes doing different positions in different cities. This is invaluable for students because it helps students figure out what they want upon graduation.

Companies students have co-oped at
Legend:
Less enjoyed, more enjoyed
Fewer students, more students

Locations

91% of students co-oped in at least 2 different countries. One of the factors behind only 9% of students interning in Canada were restrictions from work visas which primarily affects non-Canadians.

The majority that co-oped in the US worked in California and specifically in Silicon Valley. One of the reasons for this is because Silicon Valley is the headquarters for many large tech companies that hire software engineers such as Google, Facebook, Apple, etc.

During 5 of the 6 co-op terms, there was at least one student working outside of North America. This included cities such as Stockholm, Nairobi, Phnom Penh, Shanghai, Tokyo, etc.

Locations students have worked in

Favourite Locations

31% of students that worked in California preferred working elsewhere. While California is still preferred by most, this suggests that it is not for everyone. The infamous ‘Cali or Bust’ mentality could have hindered some students from exploring opportunities in other cities that may have been better suited for them.

Location of favourite companies

Salary

By the last co-op term, compensations tripled in comparison to the first. Average monthly compensation per co-op term were $2898, $4184, $5688, $7657, $8972, $9624 (in CAD, includes housing stipend).

The difference could be explained by the increase in salaries and stipends to compensate for the difference in living costs between different locations. For example, San Francisco housing typically costs a student between $1,500 to $2,500 per month. In comparison, Waterloo housing costs a student approximately $700 per month.

Monthly compensation per co-op term in CAD

Does X affect job pay?

Salary as a metric

In order to rank jobs appropriately, salary is used as a proxy metric to measure job opportunities. Due to the subjectiveness of this metric, the following results should be taken with a grain of salt because higher salary does not imply higher job satisfaction.

Grades

Grades do not correlate with salary at all. In other words, having a high cumulative average does not imply that the student will get a good salary in the upcoming co-op term. This suggests that there are more important factors than grades when it comes to finding a good job.

Some companies do use grades as a cutoff to filter large amounts of candidates. However, many companies are aware that grades are not a good indication of how performant a student can be during co-op.

This suggests that if a student wanted to optimize for getting the best co-op possible, aiming for a higher grade may not yield the desired results, and their efforts can be redirected towards other involvements such as side projects.

Grades compared to monthly salary
Co-op number:
1
2
3
4
5
6

Interactive: Click on a co-op number to view the plot for that co-op.

Gender

Women are paid the same as men on average for co-op terms. This is great to see because this suggests that women and men have equally good job opportunities for co-op.

However, this does not suggest that there is no gender bias in the longer term. fact, according to a Glassdoor study, "younger workers face a smaller gender pay gap than older workers." This finding is not exclusive to the tech industry.

Salary per co-op term

Years of coding experience

Students who started coding earlier were paid similarly compared to students who started coding later. In other words, it doesn't matter if a student started at the age of 13 or 18. This suggests that students that started coding later are not at a disadvantage in terms of co-op job opportunities.

Coding start age compared to monthly salary

Hackathons

Students who attended at least one hackathon earned 18% more on average than those that didn't attend any. In other words, students who show passion for building projects get better job opportunities than those that don't. Alternatively, this result could be because students that attended a hackathon cared more about getting a higher paying job.

Students who attended more than 5 hackathons earned approximately 27% more than those that only attended between 1 to 5 hackathons. This could suggest that the former had a lot more relevant work to show which is more appealing to employers.

Hackathon attendance's influence on monthly salary

Side projects

Students that build side projects earned 13% more on average than those that don't build side projects. The more time that a student invests into side projects, the more they are likely to get paid. Side projects are often seen as the closest thing to software work experience, making it a great time investment to compensate for any lack of work experience.

It is important to mention that side projects and hackathons are not the only way to find a job. There have been many less practiced methods students have used to find job opportunities such as referrals, networking, etc.

It is just as important to note that students who are not involved in software-related extracurriculars still find great jobs. In fact, many SE students and faculty encourage pursuing interests besides software.

Side project commitment compared to monthly salary

Admission average

Admission averages have no significant impact on job pay. A 90 in one school could be harder to achieve than a 99 in another school. In other words, admission averages are an inaccurate metric to determine how successful someone is because high schools do not standardize their grades with each other.

Admission average compared to monthly salary

Background

Gender

Women make up 17% of students, which is approximately the same proportion as the number of women in tech. Although we are still working towards increasing the number of minority gender groups, we can see a positive increase within the recent SE classes

There are also many on-campus communities that supports the success of women in computer science at UWaterloo. For example, Women in Computer Science, and Women Who Code Waterloo .

One student preferred not to disclose.

Gender proportion in class

Ethnicity

Students come from many different ethnic backgrounds, which span 27 different countries. There was a significant number of students Caucasians, South Asians, and East Asians.

Students' ethnicities

High school extracurriculars

Less than 35% of students were involved in a STEM, CS or Robotics clubs during high school. Instead, students participated in all sorts of extracurricular activities such as volunteer work for non-profits, being a cadet, starting a school newspaper, and more. Pursuing their own unique personal interests was a common pattern amongst students during high school.

Note that this is not a comprehensive list, and that students have participated in other extracurricular activities as well.

Extracurriculars during high school

International students

14% of students are international, which is 4% fewer than University of Waterloo as a whole. This could be due to the higher tuition costs for international students, who pay 27% more than the average international tuition fee. This could also be caused by the Engineering Admissions having a max quota for international students.

International students came from countries including Nigeria, United Arab Emirates, China, Pakistan, South Korea, Indonesia.

Proportion of international students

Family background

Income

More than half of students come from families whose income is higher than the median Canadian family income ($76,000). These numbers do not include income from co-op terms. The majority of students have a family income between $50,000 and $150,000.

Number of students per family income class

Level of education

There are more parents with Masters and Doctorates combined than Bachelors. Compared to our parents, only 3 students out of 113 are planning on attending grad school. This could be a generational shift, or maybe it could just be that students are tired of school after 5 years with no summer.

Parents' highest education

Academics

Grades

Study terms gradually become more difficult, but class averages remain consistent. 3B was voted as the most difficult term by students. Despite being the most difficult, its class average was only slightly lower compared to other terms. This suggests that students progressively become better at coping with difficult courses.

Grades from 1A to 4A

Attendance

Attendance consistently drops term by term, except after 3B 3B also happens to be the hardest term.

This could be because students enjoyed their 4A classes more, or maybe they were possibly looking to compensate for their lower grades in 3B.

Alternatively, students attend slightly more class more during summer terms (2B and 4A).

Attendance vs Grades

Courses

Favourite required courses

Although 3B was the most difficult term, it had Concurrency (CS343), the most popular course. The top 8 favourited courses were all between 2A and 3B. Although these terms are slightly more difficult, they also happen to have the most interesting content for students.

Students are also required to take several technical electives to fulfill their credits. The most popular electives included Graphics (CS488), Distributed Computing (ECE 454), and Human-Computer Interaction (CS 449).

Favourite mandatory courses

Least favourite required courses

3B also had Feedback Controls (SE 380), the most disliked course, which explains why it was the hardest term. Although SE 463 is just as disfavoured, it was a much easier course, which explains why 4A was an easier term.

It's important to note that courses that were disliked do not imply that students find the content useless. Instead, there are a variety of factors such as personal interests, final grades, and assignments. For example, Logic and Computation (SE 212) is considered useful by 88% of students according to UWFlow.

Least favourite mandatory courses

Does X affect grades?

Attendance

There was no correlation between self-reported attendance and grades. To be clear, this does not suggest that not going to class is beneficial. Instead, it suggests that it is possible to achieve good grades without attending all classes.

Attendance compared to relative grade from the average

Parents' education

Grades are slightly higher when at least one parent had a university-level degree. This suggests that there could be a correlation between parents' education and how academically inclined students are.

However, this does not suggest that having a parent with a university-level degree is a requirement for getting good grades.

Parents' education compared to grades

Program Outcome

Preferred program

70% of students would choose SE again if they could go back to high school. Computer Science is a popular alternative because it has more course flexibility. Unlike SE, Computer Science does not have a cohort which makes it harder for CS students to meet others.

Preferred program

the experience per gender

Being a part of Software Engineering was life-changing for most of the class, and equally enjoyed by both men and women. 51% of the class rated SE a max rating score, and 87% of the class rated above a 4 out of 5. Shoutouts to the Software Engineering faculty and the class for creating such a great environment for students!

Program rating per gender

Customizing the experience

There are many ways students can make the best of their time in university. As a software engineering student, it is normal for students to attend a few hackathons, build some side projects, intern as a software engineer in Silicon Valley.

However, several students took the extra leap of faith to make the most of their university experience. Here are some of their stories:

Transitioning into design

I’ve always seen myself as an outsider among my peers in more ways than one. Outside of class, I invested my time in pursuits like illustration, photography, and fashion blogging. When I learned about product design, a field that bridged computing and design, I knew this was it.

I’m grateful I took the leap that landed me my first product role because once I was surrounded by a community of designers with passions similar to my own, I knew I finally belonged.

Starting a tech club for nonprofits

On one of my co-ops I met a member of a Berkeley student club called Blueprint, where students build tech for nonprofits. I loved the idea of it since it combined my skills in tech with my passion for volunteering. With another girl, I started the Waterloo chapter of the club.

We've gotten to work with some amazing non-profits, whose missions range from cataloging the world's dying languages to the preservation of bumblebees to investing in entrepreneurs in rural Kenya. It's been a lot of hard work, and at times it left me feeling burnt out, but it's been an incredible experience.

Exploring data science

I saw data science as a way to grow my skill set in a way that differentiated me from other software engineers. I believe having an internship in data science has had a larger impact on my personal and career growth than completing another software engineering internship.

Throughout my data science internships I've learned various analysis and communication skills that will benefit me no matter what position I decide to pursue. I feel lucky to have had people believe in me to jump into a completely different role with no previous experience.

Minoring in Cognitive Science

I've always been interested in the mind, so when I saw the option for a minor in cognitive science, I thought, why not?

I'm somewhat torn by the end of it. I missed out on some courses, but I took others that I really enjoyed (like a seminar course that I did a research experiment in!). I could've taken these without being enrolled in the minor though, so my advice is to just take courses you're interested in and not stress about the minor.

Stumbling into product management

During my 2nd co-op, I ended up having to do customer support part-time for a month which helped me build user empathy. I was also involved with the Product Vision Club, a product management community.

I was hooked and ended up leading the club as well as organizing Canadian Undergraduate Technology Conference. Taking the risk to put myself in uncomfortable situations helped me transition into product roles early on, and I’ve loved the world of product management ever since.

Balancing school and a startup

At the end of my third year, Marcus and me had an opportunity to join an early-stage startup building autonomous semi trucks. In coordination with the SE Program, I was able to finish my degree remotely by submitting assignments online and flying back for exams. During this time, I got to be a part of Embark’s incredible journey as we grew from a small team of 5 engineers to one of the leading players in the self-driving space.

Taking this unconventional path gave Marcus and I incredible experience beyond my schooling that will follow me throughout my career.

Interests and lifestyle

Extracurriculars

Unlike high school, almost half of students were not involved in any extracurriculars during undergrad. Most students were the only SE 2018 student involved in their club.

Most students did not pursue any extracurricular activities related to STEM.

Non-comprehensive list of university extrcurriculars

Coding

Programming language

Python is the most popular programming language among SE students. Python’s versatility for back-end web, scripting, and especially machine learning could explain why it is so popular in our class. Many of these disciplines are highly in-demand in the software engineering, making Python an ideal general purpose language.

Java continues to be very popular since it is commonly taught as students' first programming language in high school.

Many companies hire web developers for co-op, which could explain why JavaScript, a scripting language for the web, is so popular. It also happens to be the most popular language amongst all developers according to a StackOverflow survey.

Favourite programming language

Editor

Sublime Text is the most popular text editor used in our class, followed by Vim and Atom. Interestingly, Visual Studio Code is one of the less popular editors in our class but it is the most popular editor according to the same StackOverflow survey. This could be because it was released very recently after most students were already accustomed to their favourite editor.

Favourite editor

Desktop operating system

The majority of students are using a macOS machine. This result isn’t surprising since macOS is built on top of Unix, enabling a lot of important functionality for programmers

Interestingly, most students didn’t have a macOS machine in first year. Many employers provided MacBooks as work laptops which introduced students to macOS's development environment. As a result, many students converted to being MacBook users during university.

Favourite desktop operating system

Hackathons

More than 80% of students have gone to at least one hackathon. They are especially popular at UWaterloo, home to Hack the North, Canada's biggest hackathon.

According to Justin Trudeau, “Hack the North will give you a chance to not only let your imagination run wild, but to meet other people who can help you solve problems: mentors, friends and colleagues, who will challenge you to take your ideas a step further.”

Number of hackathons attended

Side projects

Most students have also worked on some sort of side project during university. Amongst those that have built side projects, only 25% dedicated more than 10 hours a month to their side projects. This should be taken with a grain of salt since commitment may vary depending on the term and year.

During the first few years of SE, side projects are often a means to getting a better co-op job because it compensates for the lack of software work experience.

Estimated commitment to side projects

Software Discplines

57% of students enjoy an aspect of web development (front-end, back-end, full-stack). Many co-op positions happen to be related to web development which explains why many students are more familar with it. Alternatively, students could just find web development the most fun. Interestingly, there are no course offerings in SE for web development unlike ML and AI.

After web development, 25% of students enjoy machine learning (ML) or artificial intelligence (AI). This aligns with the rising popularity and demand of both disciplines.

Only 3 students have expressed interest in mobile development. This is surprising because of both how high in-demand it is and how ubiquitous it is amongst consumers.

Disciplines of interest

Exercise

Almost 80% of students exercise at least a few times a month. This could be in the form of intramurals, gym, sports team, etc. Students typically start SE intramural teams with one another. Although school is time consuming, most students actively set aside time for physical activities.

Exercise frequency

Cooking

Over half of students cook every week. In other words, many of us have a lot of experience cooking. How good is our cooking? That’s a completely separate question that may be better left unanswered.

These results vary depending on whether students are on a study or co-op term, since many companies cater meals during weekdays.

Cooking frequency

Sleeping

Software engineers may have a reputation for being nocturnal, but most students aren’t night owls. In fact, 72% of students usually sleep before 1AM. However, some students do still prefer sleeping late, possibly because they focus better at night, or maybe they like gaming very late.

5:00AM-6:00AM might sound crazy, but then again, SE students willingly go to 24 hour coding events called hackathons.

Estimate sleep time

Future

Post-graduation plans

As of 5 months before graduation, 77% of students already have an offer, and 15% of students are still looking for a job. 7 students are planning to do graduate studies after graduating. Although most of the class plans to join the workforce immediately, 34% of students are considering grad school in the future.

Even though 80% of the class has worked in California, less than half of students have chosen to live in California after graduating. Although California is perceived by many as the place to be for software engineers, seeing the gap in the conversion rate suggests that there are many other great places for software engineers such as East Coast Canada, East Coast US and Pacific North West US.

Post graduation plans
Desired location

Motivations

Good compensation and growth as an engineer were the main factors affecting post-graduation plans. This could explain why California was a popular choice for full-time location.

Although family may be the least popular factor, most students working away from home have expressed interest in working near their families in the future.

Factors affecting post-graduation plans

Debt

65% of students are graduating debt-free. 30% of students have less than $30,000 in debt. Among students who are in debt, the median debt is $22,500.

It's important to note that there were students from each family income bracket who graduated debt-free. All students with family income higher than $200,000 graduated debt-free.

Debt per family income bracket

Advice

"Figure out which advice applies best to you and ignore the rest." The following is a summary of the advice shared by students with the intention of being shared with both prospective and current SE students. Many of the sentences are directly quoted or rephrased from the original advice.

Your success should not be defined by others. Just because someone else is better than you at something, it does not mean that you're failing. Instead, be open and realize you can learn something from everyone. Realize that your peers' successes should be motivation rather than a reason to put yourself down.

Find value in modesty, empathy, and courage. Learn to develop good habits early on, and budget your time based on your options and priorities. These skills are indispensable during university. Find a hobby you love. That hobby just might be software engineering, or it could be something completely different like drawing video game characters.

Stop worrying about marks. They don't get you far unless you're looking at post graduate studies. This also means that you should know when to stop working on assignments to work on other things. "After graduation, I won't remember many of the bogus technical concepts. I will, however, remember the late nights in the SE lab with friends, fooling around while doing a last minute assignment."

Try out as many different co-ops as possible. And don't Cali or continuous. It's tough to get your first job, but don't give up. And if you get a co-op at a big company, it does not mean that you're at the top of the world.

And most importantly, university goes by in a flash, so enjoy it!


- University of Waterloo Software Engineering Class of 2018

Thank you!

I hope you enjoyed reading the University of Waterloo Software Engineering 2018 Class Profile!

Acknowledgements

This project wouldn't have been possible without the help of some great people:

Patrick Lam, director of Software Engineering, for confidentially managing the data and unbiasedly advising the project from start to finish.

Christopher Luc for setting up the processing architecture and advising about the best statistical methodologies to apply, and Richard Wong for helping write processing scripts.

Joey Loi and Atef Chaudhury for inspiring me to create this class profile. Much of the process and structure of this was borrowed from their Systems Design Engineering 2017 Class Profile.

Jenny Sun, Derrek Chow, Kaitlyn Yong, and Bo Peng for providing feedback on the initial drafts of the class profile.

Balaji Sankaranarayanan, Emily Walls, Seun Makinde, Soheil Koushan, and Bilal Akhtar for providing feedback on the survey sent out.

Resources

UWaterloo Software Engineering

Software Engineering Program Homepage https://uwaterloo.ca/software-engineering/

Co-op at UWaterloo https://uwaterloo.ca/co-operative-education/

Academic Calendar https://ugradcalendar.uwaterloo.ca/page/ENG-Software-Engineering

Inspirations

Systems Design Engineering 2017 Class Profile http://joeyloi.com/SYDE2017classprofile.pdf

HackerRank 2018 Developer Skills Report http://research.hackerrank.com/developer-skills/2018/

StackOverflow 2018 Developer Survey Results https://insights.stackoverflow.com/survey/2018/

Data

Processing scripts https://github.com/se2018/class-profile

Class Profile code https://github.com/andyzg/classprofile

SE Exit Survey results (not related to Class Profile) https://ql.tc/Hia9QK

Get in touch!

Let me know what you think! You can reach me at [email protected].