Home

Software

Programming Languages

  • Python
  • C/C++
  • Java
  • MATLAB
  • R
  • HTML
  • CSS
  • JavaScript

Tools & Simulation

  • Git & GitHub
  • Linux/Bash
  • Verilog/GTKWave

Python Libraries

  • NumPy
  • Pandas
  • Matplotlib
  • SciPy

Machine Learning & Data Science

  • Unsupervised Learning (PCA, Clustering)
  • Supervised Learning (Regression, Classification)
  • Dimensionality Reduction
  • Feature Extraction
  • Statistical Modeling & Testing

Breast Cancer Genomic Analysis Using Machine Learning

Heatmap Comparing Differential Expression Genes
Heatmap of Top Differentially Expressed Genes
Principal Component Analysis of RNA Sequence Data
PCA Showing Five Transcriptomic Clusters
Hierarchical Clustering of Mutated Genes
Hierarchical Clustering of Frequently Mutated Genes

Problem: Breast cancer patients exhibit high biological variations, and these datasets contain thousands of genes which makes it difficult to identify meaningful biological drivers. It is also valuable in cancer research to find patient subgroups that share similar molecular mechanisms, tumour behaviour, and clinical outcomes. With the help of integrating machine learning techniques with classical biostatistics, my goal was to explore underlying biological structure and patterns across thousands of patients by analyzing gene expression, mutation profiles, and clinical conditions.

Solution: I designed a complete bioinformatics pipeline using clustering and statistical modelling on TCGA breast cancer patient data. This involved examining mutation, expression, and clinical metadata using an integrated framework of unsupervised learning, differential expression, pathway enrichment, and statistical tests. The analysis revealed that immune-related pathways were the primary drivers of transcriptomic differences, while neither mutation or expression clusters showed differences in patient outcomes.

Impact: This project improved my skills in machine learning for biological data, statistical hypothesis testing, and interpretation of high-dimensional genomic datasets. I gained experience in dimensionality reduction techniques like PCA for visualizing complex data and exposure to clustering algorithms to identify patterns. The biological results reveal the complexity of cancer outcomes with many factors beyond simple genomic profiles that shape disease behaviour.

Features: PCA, Clustering, DESeq2, R, KEGG/GO Enrichment, Survival Analysis, Statistical Testing

Automated Sensor Logger & Reporter

Linux Terminal Executing Automation Script
Linux Terminal Executing Automation Script
Email Report with Flags & Plot
Email Report with Flags & Plot
Plot of Temperature Reading Over Time
Plot of Temperature Reading Over Time

Problem: Manual sensor logging during QA is time-consuming and error-prone. Since many embedded systems rely on Linux for automated testing, I designed a system to streamline Arduino sensor data acquisition, anomaly detection, and reporting. This project also gave me hands-on experience with shell scripting and building end-to-end automation pipelines in a Linux environment.

Solution: I built a Bash-based automation pipeline that collected sensor data from an Arduino, logged it to CSV with timestamps, generated plots, flagged anomalies, and emailed reports containing logs and visualizations. This involved integrating Ubuntu on WSL, serial data handling, and automated report generation using Linux utilities.

Impact: The main challenge was that WSL does not allow direct access to hardware COM ports. To solve this, I set up a TCP bridge (com2tcp) to forward Arduino serial data into Linux, validated the stream using netcat, and resolved parsing/permission issues. Through this project, I strengthened my skills in Linux automation, serial communication, and end-to-end QA workflow design.

Features: Linux OS, Bash, TCP/IP Protocol, Arduino, C/C++, Temperature Sensor

Live ESPN Scoreboard

Live Scoreboard Circuit
Live Scoreboard Circuit
Sample Scoreboard Display
Sample Scoreboard Display
ESPN Scoreboard Video Demo
ESPN Scoreboard Video Demo

Problem: Sports fans want to follow live games in real time, but scoreboards depend on constantly changing data feeds that come in different formats. I built this project to explore how live sports data could be pulled from APIs and displayed on a simple, interactive Arduino-based system.

Solution: I built a system that parsed API responses, displayed team scores, game clocks, and start times on an LCD, and used LED indicators to flash when a team scored. To ensure reliability, I implemented serial print debugging for data validation and created reusable C++ structs to encapsulate button debouncing and LED functionality, improving modularity and efficiency.

Impact: A key challenge was navigating through different JSON formats to extract the needed information. By building structured parsing logic and validating outputs at each step, I gained experience handling edge cases in real-time data processing. This project improved my skills in API integration, embedded debugging, and modular C++ development for hardware systems.

Features: Arduino, C/C++, ESPN APIs, JSON Parsing, LCD Display, LED Indicators

Personal Project Website

HTML Profile Layout
HTML Profile Layout
Electronics Page Layout with Green Accent
Electronics Page Layout with Green Accent
Clickable YouTube Link
Clickable YouTube Link

Problem: This was my first website that I designed and built completely from scratch without using external templates. I wanted to create a clean, organized way to present my projects while learning the fundamentals of web development and UI/UX design.

Solution: I learned to use HTML to define the overall structure of the website, CSS to add colour and improve visual presentation, and JavaScript to add interactivity through button clicks and mouse movements. I also applied minimalistic design principles with darker and neutral tones for readability, and gave each project page a unique colour theme to highlight different skill areas.

Impact: This project taught me the importance of user interface and user experience (UI/UX) design, as I wanted the most relevant information to stand out. I implemented enlargeable images using a lightbox and modal concept in CSS and JavaScript, and embedded clickable YouTube links for video demonstrations to make navigation more engaging.

Features: HTML, CSS, JavaScript, UI/UX Design

Live Weather Monitor

Weather Monitor Circuit
Weather Monitor Circuit
Monitor Display with LED Weather Indicator
Monitor Display with LED Weather Indicator
Weather Monitor Video Demo
Weather Monitor Video Demo

Problem: Weather conditions affect daily life, and being able to access real-time weather data makes it easier to plan ahead. I designed a system that monitors live weather and temperature from Vancouver, Toronto, Ottawa, and Markham to explore how APIs can enhance embedded systems with real-world data.

Solution: I used the OpenWeatherMap REST API to fetch live weather data and display it on an LCD screen. The system included an RGB LED that changes colour based on weather conditions and audio alerts that trigger when temperature changes. I also implemented two-way serial communication between a Java program and the Arduino, where both sides could send and receive commands on the same port.

Impact: This was my first time integrating internet access into a program by setting up URL connections and parsing JSON data, extending beyond local processing. I also gained experience with bidirectional serial communication, learning how to coordinate Arduino and computer inputs to control the LED and buzzer in real time.

Features: Arduino, Java, REST API, JSON Parsing, OpenWeatherMap, LCD Display, RGB LED, Audio Alerts, Serial Communication

Muscle Movement Data & Signal Processing

Marker-Based Motion Tracker Application Setup
Marker-Based Motion Tracker Application Setup
Surface EMG Setup
Surface EMG Setup
EMG Force Data Plot
EMG Force Data Plot

Problem: Understanding muscle activation and balance control is important for rehabilitation and performance assessment. I analyzed muscle movement, hand function, and balance to study grip strength, stroke rehabilitation, and proprioception using real-world biomechanical data.

Solution: I collected surface EMG, motion tracking, and force plate data, and used Python and MATLAB to process and visualize it. This included filtering signals, normalizing data, and performing statistical analysis to assess muscle activation timing, force generation, and kinematic movement patterns.

Impact: By comparing center of pressure (CoP) and center of mass (CoM) across different balance exercises, I was able to quantify proprioception and balance control, gaining hands-on experience in biomechanics data analysis, signal processing, and rehabilitation assessment.

Features: Python, MATLAB, EMG, Motion Tracking, Biomechanics, Force Plate, Signal Processing, Data Analysis

Computational Modeling of Biological Systems

Gene Circuit Repressilator
Gene Circuit Repressilator
Kinetic Model Data Fit
Kinetic Model Data Fit
Population Model Stability Analysis
Population Model Stability Analysis
Enzyme Kinetics
Enzyme Kinetics

Problem: Understanding biological systems often requires predicting how molecules, enzymes, or populations behave over time. I worked on computational models to study gene circuits, population dynamics, and enzyme kinetics to gain insight into system behavior and regulation.

Solution: I used Python to simulate ordinary differential equations (ODEs) for gene circuits and feedback loops, perform stability analysis on predator-prey population models, fit experimental enzyme kinetics data using linear and non-linear regression, and solve boundary value problems for mass transport and reaction-diffusion systems using the shooting method.

Impact: Through these simulations, I learned how to analyze system dynamics, predict equilibrium behavior, estimate kinetic parameters, and solve complex BVPs. This strengthened my skills in computational modeling, data fitting, and quantitative analysis in biophysics contexts.

Features: Python, ODE Simulation, Kinetic Modeling, Data Fitting, Stability Analysis, Enzyme Kinetics, Shooting Method