Skip to main content

Kyle Mui

SFU Student Undergraduate
Science › Mathematics | Applied Sciences › Computing Science

Position Title
The learning experience is one of the most notable highlights with my time in this co-op work term. The onboarding sessions and research tasks that I have undergone were some of the most effective learning experiences I have had throughout the years I have been enrolled at SFU.
Experience Details
Application and Interview Tips
  • If you are interested in the work they described and meet some of the listed qualifications, then you should apply. You do not have to meet every qualification
  • Express your interest in the topics they describe during interview
  • Not being able to answer a question is not an immediate fail
Introduction + Preparation
Preparation Tips for Future Students

A powerful skill that would enable a strong start into the co-op work term would definitely be familiarity with working in a Linux environment. A full desktop environment is not necessary, all of the work can be done inside of a terminal. For a Windows user like me, the perfect solution to this is using the Windows Subsystem for Linux (WSL), as this installs a Linux terminal that can be run within Windows. Knowing how to navigate Linux file systems, moving/copying files, logging into remote servers, these are all good skills to help prepare for the co-op.

Another worthwhile skill to have on the ready is a good understanding of the Python programming language. The projects that I have worked on during my co-op have all involved programs that were written in Python. With Python, there will be a lot of modules that are used within the programs. Some modules I have used a lot are Pandas and Matplotlib. I have also worked a lot within Jupyter notebooks, as I worked a lot on data visualization and validation.

One tool I have been utilizing a lot since starting my co-op was the Outlook calendar. Meeting invites are sent out as Outlook calendar events, which I had never used before. Accepting invites and creating invites can be a bit overwhelming at first, but it will definitely help out a lot during the co-op.

Photo with some members of the ΔE+ Research Group
Photo with some members of the ΔE+ Research Group
Elias, ΔE+ Research Group
Taking a group photo after our final weekly meeting for the Spring 2023 term

The people of the ΔE+ Research Group come from a diverse set of backgrounds. The main focus is Sustainable Energy Engineering, but that does not necessarily mean that you have to have an extensive background in that field. Previous co-op students were majors in different fields including:

  • Communications
  • Computer Engineering
  • Mechatronic Systems Engineering

Further adding to that list, I am student enrolled in a program working towards a Mathematics and Computing Science Joint Major.

During my Experience
Orientation and First Weeks

The first week was dedicated to onboarding and getting an understanding as to what I will be working with. I had been tasked to write a document detailing the very same project I would be working on and the data set that it would be pulling from. In order to write such a document, I had to learn a lot such as:

  • What the data set actually contains
  • What the project is even supposed to do
  • How the project uses the data set

By being tasked with explaining the points above, I gained a deep understanding about the project that I would be working on.

The second week was a lot of messing around in a Linux environment. Before starting this co-op, I actually had very little experience working with Linux. At the start, I was given a demonstration of what Linux could do in a terminal and some commands that were used. I would have to provide a similar sort of demonstration on the following week. Here, I had a lot of fun just messing around in a Linux environment and trying out a bunch of commands. The self-study nature of the task really helped me develop a familiarity with the Linux environment, compared to before the co-op where I had little to no experience.

Learning and Adaptation

There was definitely a lot to learn during my co-op. I had little background in the field of research I was participating in. The self-study approach for onboarding really helps develop a deep understanding as to what I would later be working on. As the ΔE+ Research Group is a team of researchers, I would be working with multiple people as a research assistant. A few weeks into my Spring 2023 work term, I began work with a different researcher who had been working on a different project. This meant another onboarding, as I had to understand what the project would entail.

Adaptation is something to get used to especially with in research work. There can be a lot of experimentation, which in turn, can bring up a lot of roadblocks. When the results are unsatisfactory, the methods used to produce the results are switched up, which could potentially create new concerns. For example, I may try to bring in a new data set that contains a more accurate record of wind speeds at a location, but that data set uses a completely different format for storing its data. Now I have to find a way to utilize this new format of data in order to work with it.

Accomplishments and Challenges

There was this one particular task I worked on that was both a highlight and a huge challenge for me. I have been using a Python module called atlite in order to work with a data set called ERA5, which contains hourly wind speeds at some latitude and longitude. Now say for whatever reason, using these wind speeds for calculations produces poor results and I want to try scaling the wind speeds before running through calculations. It did not sound particularly difficult at first, but there were a lot more underlying issues at hand.

The main issue stems from the fact that the calculations have to be done using the atlite cutouts, I cannot simply use a normal Python list to do the calculations. As such, I have to follow the exact format of data storage that the cutouts use, which uses an xarray dataset object. The problem with values in xarray datasets is that it is incredibly difficult to modify the values stored inside, which are stored in xarray dataarrays. Trying to directly set values would either spit out an error, or not do anything.

There was a lot of trial and error, but I eventually managed to modify the values in the dataset by copying the wind dataarray object and modifying the values in that copy. I learned that It is possible to modify values if it just a standalone dataarray object, it was just a problem when it was also nested inside the dataset. Finally, I could overwrite the old wind dataarray with the modified one by assigning over it. Now I had an atlite cutout which contained scaled wind speeds that would later be used for calculations.

GIF of hourly wind speeds on 2018-09-26
Here is a cool visualization of an incredibly small snippet of the ERA5 data set that I have been working with
Reflection & Tips

This was my first co-op work term I have done, and I was incredibly nervous when I was first starting out. I was on edge at the time because I had still been really surprised I had passed the interview stage. The co-op work search can be an incredibly stressful time for students and I was no exception. I was shaky during the time from accepting the offer to the first meeting with my supervisor, but after that meeting I had calmed down. During that meeting, I was reassured that the work I would be doing would not involve tight deadlines and crunch time. It had subverted my expectations, and in a good way. As I was a research assistant, of course that means I would be expected to do academic research work.

I worked on a mix of academic research work and programming work during my co-op. With the academic research, the work is very open-ended. There isn't a clear indication as to whether the work is 'complete', it falls onto a spectrum that ranges from 'incomplete' to 'complete'. In contrast, with a programming task, when a program does exactly what it is supposed to do, that task is 'complete'. There could be optimizations made to the code, but there is a clear distinction between the program working as intended and """working as intended""".

Most Valuable Aspects of This Experience

The learning experience is one of the most notable highlights with my time in this co-op work term. The onboarding sessions and research tasks that I have undergone were some of the most effective learning experiences I have had throughout the years I have been enrolled at SFU. I have retained a lot of knowledge on the skills that were taught, which usually isn't the case. I can very easily forget how to do a question on a final exam if the question involved content at the beginning of the semester.

Remote work is another highlight to mention. This is especially relevant as someone who lives in the city of Richmond, since the transit time is always an issue to deal with when travelling to SFU's campuses. The kind of work that I did for the co-op is perfectly compatible with remote work. There are weekly meetings that take place in-person at a lab in SFU's Surrey campus, but there is always the option to attend the meetings remotely.

Inside the lab where meetings take place
Here is what the meeting room looks like from the inside.     Credit: Elias, ΔE+ Research Group


Connection to Academic Studies or Career Goals

One of the skills I have learned that will definitely carry over to both academics and careers is familiarity with Linux. It's an operating system that comes up a lot in computer science courses. I have had to use Linux before in some lower division courses and never did much with it outside of the bare minimum for working on assignments. It also often shows up as a qualification in a lot of co-op job postings that I have looked at.

From the section on the Most Valuable Aspects just above, I had mentioned remote work. The ability to work remotely comes up a lot in job postings. I have not done remote work before this co-op, so learning how to get a proper remote workflow established feels like it will translate well to future career paths. While the COVID-19 situation isn't as dire as it was a year or two ago, remote work is still here to stay.

Advice for Future Students

The co-op work search can be really stressful. It can be incredibly disheartening to send application after application and get no response. The fact that you are probably going to be doing academic coursework while sending out applications doesn't help either.

It isn't much and perhaps a bit cliché, but please do not give up on the work search. The co-op experience is worth your time.

The co-op work experience is a lot more than just something you put on your resume. When looking through the material for a course, have ever asked yourself: When will I ever use this? You may be learning a new skill that could potentially show up again in the foreseeable future. When you learn a skill in a co-op, you immediately use your newly obtained knowledge in order to do your job. This not only deepens your knowledge on the skill, but it also demonstrates a real-world use case for the skill you learned. It is an incredibly effective way of learning new skills.

The sheer amount of dopamine you get from seeing the co-op offer email notification makes up for the stressful days of the co-op work search. It is a feeling that you have to experience for yourself to know how it feels, words are not enough to describe it.


Kyle Mui

SFU Student Undergraduate
Science › Mathematics | Applied Sciences › Computing Science
visibility  235
Apr 14, 2023

Interested in other Research Assistant Positions?