Software Developer at
General Dynamics Mission Systems Canada
A blend of personal, academic, and professional projects.
Machine Learning
Predicting Lung Cancer with CT Scans
Trained a model to diagnose various types of lung cancer using CT scans
Applied transfer-learning to fine-tune Google's Vision Transformer (ViT) model to the task of image classification
CT scans of the torso region were classified as either non-cancerous, or from one of 3 types of cancer (adeno, large cell, and squamous cell)
Base model was downloaded using Hugging Face Transformers
Trained further on CT scans dataset with PyTorch in Python
Overall accuracy of 88.8% on validation dataset
Predicting Breast Cancer
Trained various models to classify tumours found in breast tissue as either benign or malignant based on 9 quantitative measurements
Implemented models include: Support Vector Classifiers, Random Forest Classifiers, and K-Nearest-Neighbour Classifiers
Peak overall accuracy of 96.8% obtained in K-fold cross-validation
Made in Python
Software Development
Ride Share Web App
Developed a ride share application for a team project in a software design course
Helped in writing SRS documents outlining our software
Assisted in backend development using Django in Python
Assisted in frontend development using React
Responsible for deployment using Heroku for presentation
My roles on the team: Team Lead, Full Stack Developer, and Deployment
Database made in PostgreSQL by another team member
Screenshots
Polling Web App
Developed a polling app to explore software development
Backend made with Django in Python
Frontend done with JavaScript, HTML, and CSS
Database for polls & votes made with SQL
Natural Language Processing
Next Word Prediction
N-Gram Language Model made in Python
Predicts the next word in a sentence based on context
Uses most-frequent n-grams from a training corpus to predict
Sentiment Analysis
Classifies samples of text as either positive, negative, or neutral
Best model used a Binarized-Naive-Bayes Classifier and predicted sentiment with 72.% accuracy
Trained on a large dataset of tweets with sentiment labels
Word Similarity
Generated multiple types of embeddings from a training corpus of blog posts
Developed and tested multiple models abilities to estimate similarity of words using cosine similarity
The goal is helping the computer understand words like "car" and "van" have similar meaning despite being different words
Educational Work
Overview
In my personal experience growing up, educational material for topics of computer science struggled to engage youth despite there being so many ways it could be made fun. I took the approach of figuring out how I could turn fun ideas for kids into educational material. I developed courses to teach introductory game development in JavaScript and Python as their syntax is relatively beginner friendly and both languages are widely used. Using an engaging medium such as video games to sneak in computer science lessons proved rather successful after having taught 70+ students with that approach. I adapted my approach to more complicated topics such as artificial intelligence by making students train a Google Teachable Machine model with their webcam to use their real-world movement as input for a game.
Overall I am grateful to have had the opportunity to help teach youth how to code in a manner that they seemed to find enjoyable. I also learned how to 3D model, rig models, and animate to help accommodate high-demand for those course subjects. The educational work referred to here is my time at Artech Camps in summer of 2022. My first and only prior experience to Artech was teaching generative art courses in Java for KTBYTE CS Academy in 2018.
Performance Review
by Ronnie Scullion (Owner of Artech)
Signed full copies of this performance review are available upon request due to potentially sensitive information contained within.
Parent Reviews
Game Development
Realtime Server Client Interaction
Front-end written in JavaScript & p5js
Back-end made with NodeJS, socket.io, and express
Goal was to study client-server interaction and how the backend and frontend of an app need to work together
Integrated system to allow interactive actions between players in real-time (attacking, blocking)
The primary goal was learning about how servers work and making a fun game
The code provides a good idea of what components a multiplayer game system require
Infinite World Generation
Written in Python with Processing.py for graphics
Goal was to imlement the concept of random world generation using perlin noise
Implemented a depth-sorting algorithm
Applied perlin noise to a 2D height map for the over world and a 3D volumetric map for cave generation
Infinitely generate terrain as you move around