Caleb Phillips



Pursuing a Master's degree in Computer Science at the University of Toronto. Specializing in mobile computing with interests in health monitoring and applied machine learning.


Skill Keywords
Data Science Python Pandas Numpy Sklearn Keras TensorFlow
App Android Kotlin Arduino Tizen Java Firebase Firestore
Database MySQL PostgreSQL ORM Hibernate SQLAlchemy NoSQL
Dev Ops Google Cloud Heroku Github Bitbucket Jira Bamboo TDD Agile
Web AngularJS Bootstrap/CSS Google-APIs Flask Apache
Languages Python Java Golang Clojure BASH Common Lisp C++ C Typescript Javascript


Summer Research Student, UofT (Dr. Eyal de Lara)

2017-05 — 2017-09

Continuing research into path computing, a multi-tiered variation of edge computing. Developed addition of monitoring utility to CloudPath, a distributed path computing framework. Application development to motivate need for the architecture.

Java Nomad Cassandra Path Edge Computing

Programmer, Hydro One

2015-05 — 2016-09

Full stack web development for various internal projects. Produced API for multi-million row database to facilitate companies shift to web based applications. Produced identification API using LDAP protocol to facilitate authentication. Continuous maintenance and service of legacy .NET desktop applications.

  • Full stack web development using AngularJS, Flask, SQLAlchemy, Django, MSSQL, OracleDB, and Apache.
  • RestFUL API development to facilitate companies migration to the web.
  • DevOps management using Jira, Bitbucket, and Bamboo.
Python AngularJS Typescript SQLAlchemy DevOps C# MSSQL Apache OracleDB

Research Technician, UOIT (Dr. Ken Pu)

2015-04 — 2015-12

Research into natural language processing and its applications for a marketing agency. Developed pipeline to rank algorithmically generated articles by a measure of N-gram likelihood in the Google book corpus.

  • Developed likelihood classifier using Google books corpus and BerkeleyLM tools.
  • Developed NodeJS file server to host machine generated articles.
NLP Clojure NodeJS


Pulse Oximeter Android App

Android application to collect and align analog device readings from pulse oximeters. Saves data to a remote database for offline processing.

Android Data-Collection USBSerial

Pulse Oximeter Data Analysis

Performs analysis on data collected by the like-named Android application. Applies various machine learning techniques to provide accuracy and reliability measures of readings inferred from photoplethysmographs. Reading types include heart rate and peripheral oxygen saturation.

Python Machine-Learning Keras Signal-Processing

Profiling CUDA based Bioinformatics Applications

Series of scripts to deploy GPUBlast and BarraCUDA (and all dependencies) on GCloud instances. Runs workloads of varying sizes for both applications. Uses vTune and NVProf for profiling.

CUDA Bioinformatics GCloud Bash NVProf vTune

Path Monitor

Monitoring utility for the CloudPath multi-tiered edge computing framework. Aggregates basic system information from distributed nodes using Cassandra clusters.

Edge Computing Cloud Java Cassandra Nomad


Python wrapper and extension to BuDDy. Uses binary decision diagrams for constraint solving on real world problems.

Python C BDD

Map Chat

Android application to facilitate location based chatting by dropping message on an interactive map.

Android Firebase Google Maps API

Ultimate Tic-Tac-Toe Bot

Golang bot to play Ultimate Tic-Tac-Toe on Uses a Monte-Carlo tree search algorithm.

Golang AI

Connect Four Bot

Clojure bot to play Connect Four on Uses a min-max algorithm with several optimizations.

Clojure AI


Hons. BSc in Computer Science, University of Ontario Institute of Technology

2013-09 — 2017-05

Graduated with highest honours on President's list. 4.2/4.3 GPA.

Databases NLP Logic

MSc in Computer Science, University of Toronto

2017-09 — 2018-12

Research in Systems and Networking with a focus in mobile devices, wearable health sensors, and applied machine learning. 4.0 GPA. Thesis is focused on improving reliability and accuracy of pulse oximeters for measuring peripheral oxygen saturation. Work is multidisciplinary, containing aspects of (1) app development with Arduino, Android and Tizen Studio, (2) data analysis with Python and Pandas, (3) and machine learning with Sklearn, Tensorflow, and Keras.

Topics in Mobile and Pervasive Computing. Topics in Computer Architecture. Machine Learning. Topics in Computational Medicine.


Towards Accurate Readings of Wearable Pulse Oximeters, Ubicomp (To Submit)


CloudPath: A Mulit-Tier Cloud Computing Framework, ACM/IEEE SEC


High Speed Object Tracking Using Edge Computing (Poster), ACM/IEEE SEC


References available on request