Machine Learning

Building the Future with AI

Featured Projects

Electrodynamix

Next.js 14FastAPIGroqLangChainNGSpiceReact Flow

Full-stack web app for circuit design via natural language; Llama 3-powered netlist generation with a Next.js 14 frontend and FastAPI backend, running real-time transient & frequency-domain analysis in a sandboxed NGSpice engine with interactive chart output.

Implemented Llama 3-powered netlist generation from natural language prompts
Deployed LangChain RAG with vector embeddings to ground AI circuit feedback in domain theory
Built a React Flow interactive canvas for visualization and dynamic schematic design
Integrated NGSpice for real-time transient and frequency-domain analysis with interactive charts
Electrodynamix

Waterloo Reality Labs Software Team Member

Meta SDKUnityPyTorchNeural NetworksVR/AR

Working with the Meta SDK package in Unity and a PyTorch-based neural network to develop a binary multi-class recognition system for real-time gesture tracking on the Meta Quest headset.

Implementing hand gesture recognition using neural networks
Optimizing models for real-time performance on VR hardware
Creating intuitive user interfaces for VR interaction
gesture_recognition.py
import torch
import torch.nn as nn
class GestureRecognitionModel(nn.Module):
  def __init__(self, input_size, hidden_size, num_classes):
    super(GestureRecognitionModel, self).__init__()
    self.lstm = nn.LSTM(
      input_size=input_size,
      hidden_size=hidden_size,
      num_layers=2,
      batch_first=True,
      dropout=0.2,
      bidirectional=True
    )
    self.fc = nn.Linear(hidden_size * 2, num_classes)
    
  def forward(self, x):
    # x shape: (batch, seq_len, input_size)
    lstm_out, _ = self.lstm(x)
    # Use the final time step output
    out = self.fc(lstm_out[:, -1, :])
    return out
# Initialize model for 21 hand landmarks and 5 gesture classes
model = GestureRecognitionModel(
  input_size=21*3,  # 21 landmarks with x,y,z
  hidden_size=128,
  num_classes=5
)

CodeSpeak

TensorFlowMatplotlibGoogle GeminiGoogle Cloud

Voice-powered, AI-assisted IDE with visual blocks and speech-to-code features for enhanced accessibility for visually impaired users.

Developed a Python test loop that validates code using syntax checking
Employed Google embeddings and PCA visualization
Built a TensorFlow classification model
CodeSpeak

GeeseTalk

PythonLLMsGoogle GeminiNLP

AI-powered platform for real-time communication coaching with Voiceflow through gamified roleplay and AI-driven feedback.

Integrated Google Gemini 1.5 Flash for real-time analysis
Developed performance scoring system with JSON-based feedback
Designed animated UI elements with HTML and Framer Motion
GeeseTalk

Certifications & Learning

Azure AI Fundamentals

Natural Language Processing (NLP)Microsoft AzureAzure AI StudioMicrosoft Azure Machine LearningOpenAI API

Earned Microsoft's Azure AI Fundamentals certification, covering essential concepts in AI workloads, natural language processing, computer vision, conversational AI, and responsible AI. Gained hands-on exposure to Microsoft Azure AI services and tools.

Azure AI Fundamentals Certificate

NVIDIA's Building RAG Agents with LLMs

LLMsMistral AINV-EmbedTensorFlow

Worked on labs with LLM prompt engineering using NVIDIA's NGC chat and embedding models. Utilized TensorFlow for analyzing the semantic value of queries and implemented Gradio for the front-end connection to chatbots.

NVIDIA's Building RAG Agents with LLMs Certificate

NVIDIA's Disaster Risk Monitoring

DaliTAOTensorRTTriton

Worked with labs in Dali processing for image RGB processing, image decoding, resizing, and rotation. Used NVIDIA's TAO optimized with TensorRT to retrain pre-trained deep learning models for flood detection.

NVIDIA's Disaster Risk Monitoring Certificate

MATLAB's Deep Learning Onramp

MATLABCNNsTransfer LearningImage Classification

Dealt with Convolutional Neural Networks and Transfer Learning in MATLAB, learning to build, train, and evaluate deep learning models. Explored techniques for image classification, feature extraction, and model optimization.

matlab_cnn.m
% Load pretrained network
net = resnet50();
% Define layers for transfer learning
layers = [
  net.Layers(1:end-3)
  fullyConnectedLayer(numClasses)
  softmaxLayer
  classificationLayer
];
% Set training options
options = trainingOptions('sgdm', ...
  'MiniBatchSize', 32, ...
  'MaxEpochs', 10, ...
  'InitialLearnRate', 1e-4, ...
  'Shuffle', 'every-epoch', ...
  'ValidationData', validationData, ...
  'ValidationFrequency', 10, ...
  'Verbose', false, ...
  'Plots', 'training-progress');
% Train network
trainedNet = trainNetwork(trainingData, layers, options);