Last Updated: 07 January 2018

Note: This page needs pictures.

UW Bothell - EYE Center Research

January 2017 - June 2017


The goal of the EYE (Educating Young Eyes) Center is to develop better tools for detecting and treating near vision issues in children.


UW Bothell - General Purpose GPU Research

January 2016 - June 2016

At the University of Washington Bothell campus, I participated in Undergraduate Research to help develop class materials for a Graduate level High Performance Computing (HPC) course.

The Research was led by Dr. Erika Parsons of the University of Washington.


The purpose of the project was to establish a knowledge and technical base for HPC study at the Bothell Campus. The course serves as an introductory lesson for graduate students, with hopes of sparking further interest and development in HPC.

The two main points of interest for the research were:

  • Determing what expectations should be set when non-specific instructions are given to students.
  • Further develop methods for introducing the knowledge of industry experts to students of vastly different mindsets.


Coming from no background in HPC, my role in the research was two-fold; learn as much of the subject as I could to develop intoductory curriculum resources and evaluate proposed lessons and resources from the perspective of a new student.

It was imperitive that I record my experiences when learning the material myself, so that potential learning hurdles could be identified early on. To that end I created a series of documents that walked through what I learned while describing the sections in which difficulties were faced, what made it difficult, and how I got through that hurdle.


Through my participation I gained a solid understanding of the core principles of parallel computing and how to program for devices built to take advantage of a high level of parallelization.

Technology-wise, I became familiar specifically with developing in an NVIDIA CUDA environment on Linux for general purpose programming of Graphics Processing Units. Many concepts used are, however, portable to other systems. Such as the high level architecture of a GPU and the resource needs and limitations of that style of programming.

EvCC - Automated Advising

January 2014 - January 2015

The Automated Advising System was an Algorithm’s Club project at Everett Community College.


The goal of the project was to help alleviate the advising workload from the teaching faculty at Everett Community College. At the time, they were responsible for handling most of the student body’s mandatory degree advising.

This was particularly an issue for the smaller departments (such as the CS division, which had one dedicated faculty member at the time), who would receive a drastic increase in workload during registration periods.

Another aspect of the project was cleaning up course information inconsistancies. When the project began, a large amount of course information was still recorded manually on Word documents. In many cases this led to issues with communicating course prerequisites to students, as there were no enforced standards as to how to record this information.

This was included as an aspect of the project due to our dependency on that information.


To solve this problem, we designed a web based system that would allow students to generate a potential course schedule based on information they provide. The system would access a database of available courses and prerequisite dependencies in order to determine what courses the student needed for the desired degree, and would suggest a timeline.

This is not enough to completely replace in-person advising, but it would handle a large number of smaller cases, and would give the advisor meetings a better starting point.


I served as project manager for the club during my time at Everett, and was responsible for facilitating communications between project teams. I also particpated in high level design, prototyped front-end web systems, and participated in database development.


I got started with the project shortly after I began pursuing an education in Software Engineering. As such, this was my introduction to many professional development tools and the development process in general.

Technology-wise, I learned the basics of having a web application communicate with a database. I prototyped a login system, and began work on storing and accessing course information in a database.

The project was also a great lesson on working with other developers of various skill levels. One of the largest hurdles to the project was communication. While the 1-3 hour long club meetings were very productive, at home progress was very slow. Due in part to it being a side project for everyone, but there was also a lack of understanding of individual responsibilities.

My early attempts at coordination were by email, which proved to be unsuccessful. The issue was that most of the members of the team had very little need for email otherwise and were not used to checking it. More modern forms of communication, such as Skype, proved more successful.

The biggest lesson in project management was ensuring that every member had clear short term goals. Without short-term goals, members will often retread old ground or lack the motivation to work on the project at all. While it’s difficult to establish a long term timeline when working without prior experience, setting up weekly tasks and deliverables during club meetings could be accomplished after some talking.