Collaborating with the CIRRUS lab at the University of British Columbia, I participated in the UnFaaSener project, a lightweight framework aimed at empowering serverless developers to optimize expenses through the utilization of non-serverless compute resources. My role primarily involved conducting performance comparisons of UnFaaSener with alternative implementations of the project's benchmarks on two popular serverless workflow platforms: AWS Step Functions and Google Workflows.
Projects
Completed as part of my internship at AWS, this project involved developing and open-sourcing four different patterns for capturing, ingesting, and visualizing IoT data from edge devices into AWS IoT Core. These patterns, implemented using CloudFormation templates, enable effortless deployment of real-time and near-real-time data visualization on intuitive dashboards without extensive cloud resource management, benefiting AWS IoT ExpressLink customers and adaptable to various edge devices and use cases.
Completed as part of the COMP 559 course (Fundamentals of Computer Animation), this project involved the implementation of a particle-based physics simulation inspired by Macklin et al.'s "Unified Particle Physics for Real-Time Application". It introduces a unified dynamics framework and particle solver tailored for fluid (liquids and gases) and fluid-solid coupling modeling. By utilizing particles connected by constraints, the solver efficiently treats contact and collisions, enabling efficient simulations.
Completed as part of the COMP 598 course (Cloud Computing), this project develops an elastic cloud management system with load balancing capabilities using HAProxy and Docker. The milestones include creating a basic cloud management system to handle interactive and non-interactive jobs, integrating HAProxy for optimized resource utilization, and making the cloud resource manager elastic to dynamically adjust resource allocation based on user demands.
Completed as part of the COMP 417 course (Introduction to Robotics and Intelligent Systems), this project focuses on developing a PID controller to stabilize the pole angle in an inverted pendulum, using the Kalman Filter's estimated states. Utilizing the image stream from a device camera, the project performs object tracking and provides observations for the Kalman Filtering process, which serves as the foundation for the PID controller's design.
As part of the ECSE 420 course (Parallel Computing), this project evaluates the efficiency of Azure Quantum Inspired Optimization (QIO) solvers in solving the Traveling Salesman Problem. A comparison is made between various QIO solvers, including SimulatedAnnealing, ParallelTempering, Tabu, and QuantumMonteCarlo, with classical exact solvers (dynamic programming and greedy algorithms) and meta-heuristic solvers like D-Wave NetworkX and Google OR-Tools.
As part of the COMP 551 Course (Applied Machine Learning), this project explored strategies for multi-label image classification using CNNs. We utilized MobileNetV2 and ResNet50 as backbone models and investigated SESEMI semi-supervised learning, pseudo-labels, data augmentation, weighted multi-label losses, and varying learning rates. The CNN architectures incorporated backbones and multiple heads for classification and SESEMI tasks.
Completed as part of the Borealis AI mentorship program, Let's Solve It, this project focuses on AI-driven environmental solutions to combat deforestation. Multiple ML models, such as Ensemble Trees, Arima, XGBoost, and LightGBM, were trained and assessed to predict the optimal number of trees required for planting worldwide. Additionally, an interactive Power Bi dashboard was created to demonstrate the predicted deforestation rates across the globe, showcasing the project's measurable outcomes.
Completed for the COMP 424 course (Artificial Intelligence), this project entailed the development of an AI agent in Python to compete in the Colosseum Survival game, a 2-player turn-based strategy game on an M × M chessboard. By extending a minimalistic Python game engine, our objective was to implement an intelligent agent capable of utilizing Monte-Carlo Tree Search to identify threatening plays against opponents and leveraging worth and movement heuristics, along with augmenting the basic search with pathfinding algorithms to improve performance in enclosed spaces.
As part of the COMP 308 course (Computer Systems Lab), this project entails developing a simple brick breaker game in x86 assembly language with its cover art created using OpenGL and GLSL.
As part of the COMP 598 course (Introduction to Data Science), we analyzed over 10,000 COVID-related tweets in Canada to identify salient topics and assess public sentiment. By categorizing the tweets into topics such as Policy, Pandemic Effects, Vaccination, Infections, and Science, and performing sentiment analysis, we investigated the relative engagement with these topics and gauged the overall positive/negative response to pandemic and vaccination policies.