About Me

Who Am I?

I am a PhD student with the MAST Group at the University of Hamburg (Germany) under the supervision of Dr. Walid Maalej. I research Recommender Systems in Software Engineering, as well as topics at the intersection of Machine Learning and Education. My BSc and MSc are in Computer Science, but I am also fond of Psychology, Sociology, and Philosophy.

I completed my MSc at the University of Victoria (Canada) with The SEGAL Lab under the supervision of Dr. Daniela Damian. My thesis topic involved the use of machine learning to predict customer behaviour at IBM; Thesis title: "Escalation Prediction using Feature Engineering: Addressing Support Ticket Escalations within IBM's Ecosystem".


PhD in Computer Science

Dr. Walid Maalej - The MAST Group

University of Hamburg

2018 - Present

MSc in Computer Science

Dr. Daniela Damian - The SEGAL Lab

University of Victoria

Graduating GPA - 4.0 (A+)

2015 - 2017

BSc in Computer Science

University of Victoria

Graduating GPA - 4.0 (A+)

2010 - 2015


UVic Graduate Award

University of Victoria - $3,000

UVic Graduate Award

University of Victoria - $1,500

IBM CAS Fellowship

IBM - $26,000

Canada Graduate Scholarships-Master’s

NSERC - $17,500

President's Research Scholarship

University of Victoria - $4,000

UVic Graduate Award

University of Victoria - $1,500

University of Victoria Fellowship

University of Victoria - $13,500

Outstanding Graduate Entrance Award

University of Victoria - $5,000

Undergraduate Student Research Award

NSERC - $4,500

President's Scholarship

University of Victoria

Faculty Scholarship

University of Victoria


Current Projects

OpenReq (Click Here for Website)

MAST Group, University of Hamburg

Our aim is to provide better requirements engineering to organisations. We are looking for improvements in the areas of requirements identification, classification and decision-making support. These improvements can be achieved through improved processes, methods and tools. The OpenReq project gathers together both academic and industrial partners looking for the best ways to ease organisations´ requirements engineering. The project evaluates its innovations in a series of trials provided by the project´s industrial partners in the field of telecom, transportation and cross-platform open source software.

Past Projects

Sentimental ECrits

SEGAL Lab, University of Victoria

Building on the ECrits project metioned below, we are investigating the use of Natural Language Techniques to characterize customers in the support process. The goal of the project is to build customer personas that can be utilized to predict escalations within IBM's ecosystem. However, once the personas are built, we are looking to expand the scope to include other objectives such as business characterization and satisfaction tracking.

ECrits - Early Critical Situations

SEGAL Lab, University of Victoria

We investigated the use of Machine Learning techniques to predict escalations against IBM support tickets. Modelling customer behaviour during the support ticket resolution process is a non-trivial task, with compounding complexity as other factors such as customer traits and business needs are considered. Using Data Mining and Machine Learning techniques on three different internal IBM data sources combined with contextual knowledge gained while working with IBM, we developed a model to predict customer-initiated escalations.

External Contributor Recommender

SEGAL Lab, University of Victoria

The Jazz ecosystem (IBM's internal workflow tooling) is designed to foster a restricted collaborative workflow, whereby people can contribute to conversations that they have been granted access to, as well as all internal "public" communities. Our work was investigating the external contributions to test the hypothesis that external contributors -- people outside the designated team -- help tasks to be completed on time. The underlying theory is that no individual team knows everything required for a task/project to complete, and so either they work hard to find the information they need, or someone external to the team contributes their knowledge.

LAQQ - Live Anonymous Question Queue

Course: CSCW, University of Victoria

As part of an undergraduate course my group and I proposed a system (framework) for education-assistance tools, found a tool that closely matched our proposed system, and conducted a 3-part study of that tool in use. Once our study was complete we wrote about it in a 5 page paper that was submitted, accepted, and published at WCCCE 2015, a conference on Computing in Education. (reprint)


Click Here For My
Google Scholar Profile

After much effort maintaining my own list of publications, I have decided that Google Scholar does a much better job than me. Additionally, Google Scholar maintains citation counts which allows interested parties to assess quality over quantity.


Current Courses

Empirical Software Engineering (Homepage)

University of Hamburg

Empiricism in Software Engineering research is an important skill that requires knowledge and practice. We teach students the basics of empirical research methods, and offer them the opportunity to identify, extract, and critique the use of these methods in existing research papers in Software Engineering.

M-Lab (Homepage)

University of Hamburg

In this teaching and innovation laboratory students develop innovative Apps in small teams, under real conditions and tight project deadlines, for real customers from industry, society and the public sector. They experience the latest technologies and development tools, and the theory and methods of software engineering and project management. They also make valuable experience in teamwork and in communication with the "clients".

Previous Courses

Guest Lecturer - Various Courses

University of Victoria

Over the years at UVic I have given multiple guest lectures on different topics ranging from Object-Oriented Programming to Software Engineering in general. Here is a list of the courses and topics I have lectured on:

  • SENG 330 - Design Patterns and their Application
  • CSC 375 - Practical Applications of System Analysis (2 Lectures)
  • SENG 299 - Deep Dive into 6 Design Patterns (3 Lectures)
  • CSC 106 - What is Software Engineering?

Requirements Engineering

SENG 321 - University of Victoria
Teaching Assistant

Combines a range of topics integral to the analysis of requirements, design, implementation, and testing of a medium-scale software system with the practical experience of implementing such a project as a member of a software engineering team. Introduces requirements engineering, specifications, software life cycle models and methods for requirements engineering.

Introduction to Systems Analysis

CSC 375 - University of Victoria
Teaching Assistant

I worked with the students -- alongside another TA -- to help them understand the content and complete their semester-long projects. The major focus of this course was System Analysis, which we delivered as a personalized project between pairs of groups where one group acted as the analysts and the other as the customer. Other duties included marking, exam invigilation, and a series of guest lectures.

Computers and Information Processing

CSC 105 - University of Victoria
Lab Instructor

In preparation for this course I created -- in conjunction with the other lab instructor -- a project for the students to be completed over the course of the semester. This project-plan included weekly lab write-ups as well as an overall learning outcome per topic area. This project-plan was implemented over 10 weeks as the other lab instructor and I taught the content to 11 different lab sections. Main learning topics included: Excel, MS Access, and Web Dev.

Software Architecture and Design

SENG 299 - University of Victoria
Teaching Assistant

I worked as a technology assistant in the three-person team assigned to TA this class. I interacted with the students (including 3 separate guest lectures on Design Patterns) but my role was largely as a technology guide for the students as they created a fully-functioning web-app for their project.



Requirements Engineering

Recommender Systems - Developer Assistance - Collaborative Workflows

Applied Data Science

Data Mining - Machine Learning - NLP

Education Assistance

Knowledge Distribution Frameworks - Online Classrooms - Automated Teaching



Python - Data Mining - Machine Learning

Front-End Web Development

HTML5 - CSS - ES6 - Angular - React

Back-End Web Development

Node - Express - Databases

Primary Languages

Java - C# - C


Computer Science Basics

Programming - Data Structures - Psuedo Code

Requirements Engineering

Project Planning - Document Creation - Group Dynamics

Design Patterns

System Architecture - Common Patterns - Broader Thinking

Web Technologies

Front-End and Back-End - Call Stacks - Technology Trade-Offs

Development Side Projects

I enjoy learning about current technologies through side-projects. These projects range from community tools to games. Although most of them are not "live" or even complete, I value the journey of learning and building.


A fresh take on eating out

Why eat alone when your friends are nearby, or better yet, meet a new friend. This application is a tool to connect with people over meals. Together is Better.

A Simple GO AI Web Service

Simple decision-based AI Endpoints

An external web service that students programming a FullStack GO (game) application can send http requests to. Acts as AI deciding moves in a GO match.

Clash of Clans - Clan Management Tool

Provides basic clan-management functions

In an effort to improve the community experience of being in a clan, this application provides features that help manage members, strategize in wars, and keep track of past clan activity.


Shifting rings bloom every 3 turns

A fluid-feeling simple game like 2048. Designed with simplicity in mind.

Sanity Pillars


The sport, on the court


Played when I was younger, getting back into it

Board Games

Fun way to lose an entire evening

Video Games

Sandbox games mostly, like Factorio