Reflections: from new student to undergraduate research assistant

IFS CUPS Poster

21 November 2017


This post was originally published on Dr. Daniel Gillis' blog as part of a series of reflections by his students on the research they have been doing. I met Dan at the beginning of my undergrad in 2016 and have been working closely with him, Dr. Judi McCuaig, and several other students over the past year. This post describes my experiences in a high-level overview.

A little over a year ago, I had just begun my first year of university education. Fresh out of high school, always a strong academic, and brimming with ideas, it was back to the basics for me during my first few months at the University of Guelph. Having come from Waterloo Region, graduating from a school with strong programs in mathematics and computer sciences, my 12th grade computer science class was roughly equivalent to the 2nd year C Data Structures course that I finished this past summer. Because of my background, I consider myself quite fortunate — when taking introductory programming and calculus classes, I didn’t struggle with my coursework and I had a fair bit of time on my hands for extracurricular activities, my own personal software development, and generally getting a feeling for adult life. While my peers were navigating the treacherous waters of memory management in C and learning how to take integrals, I had the freedom to experiment, explore, and present my findings.

This freedom eventually lead to my discovery of the Guelph Coding Community, which provided a venue for me to deliver an informal presentation about anonymous computing, and the alternative social network which I created in partnership with my best friend, Kyle Farwell. At the time, I was nervous as all hell to present this patchwork piece of software (primarily written in shell!) to my peers; but I rolled with it. In October 2016, pretty much out of my wits, this was where I was first acquainted with Dr. Daniel Gillis — computer scientist, statistician, mountain climber, and co-supervisor (along with Dr. Judi McCuaig) for my undergraduate research assistant-ship (URA). I guess Dan noticed something in me that night because a few months later, I was digging into the guts of an e-learning application which serves as the basis for James Fraser’s PhD thesis. Having the incredible opportunity to work with Jamey over the past eleven months, I’ve been challenged frequently, and I’ve grown a significant amount as a computer scientist, software developer, and human being.

Diving into a project that is already mature is really hard. Especially so, when it’s subject to restrictions, conditions, performance constraints, a well-defined feature-set, and a tech-stack that has been (mostly) chosen and wrote in stone well before you’ve ever arrived. When I started working on the Immediate Feedback System (IFS) back in January, I was mainly trying to solve the problem of building a server-side toolset for processing/linting the English language for the purposes of providing automated feedback for user-submitted essays and writing. The way this actually worked was pretty cool: due to the IFS design, file processing is passed off to system tools which can be implemented in any language, so for rapid prototyping of features, many of these tools were written in Python and leveraged the shell and other OS utilities to do the heavy work. This is pretty awesome in my opinion (but I’m a giant Unix nerd, so whatever). Expediting the process of feature implementation, I helped to revise the web application’s look and feel, and build up the Node.js server functionality. This pulled me well out of my comfort zone (procedural programming, scripting, etc.) and forced to me to adapt to the complete paradigm shift that is a JavaScript server. Through this entire development process, I was allowed to make mistakes, learn, explore, build, and eventually get this full-stack software pushed to a beta in July. This experience was seriously valuable, taught me a lot, and has helped to shape me as not only a developer, but also an academic.

As part of my URA, Dan and Judi have encouraged me to really think critically, participate in poster competitions, attend conferences, etc. and each round of revisions to various pieces of writing has helped me get to be where I am now. In August of this year, I co-presented with Jamey at the Graduate Student University Teaching Conference and discovered that I actually really like talking in front of people, sharing my knowledge and experience, and learning from the community in attendance. Nearly at the end of my 3rd full academic semester, I’m actively participating in research teams, writing meaningful software, and presenting at conferences.

Now that the development of the IFS is pretty much done with, and that project is in its data collection phase, my sights have been set to the North. I never thought things would move so quickly, but now I find myself actively seeking abstracts and papers about infrastructure-less mesh networks and mobile monitoring as I prepare to properly join in as a member of the Guelph eNuk research team, seeking to improve internet access and social welfare in remote communities such as Rigolet, Nunatsiavut. It’s been a wild year (a certain someone would say I’ve gained “wizardly powers”) and I really can’t wait to see what’s in store for the upcoming months. I’m constantly amazed the great work that is being done by the University, and I’m eager to jump in again and contribute in whatever way I can.