Scientific Computing
Energy conservation plot showing kinetic, potential, and total energy oscillations for a copper adatom diffusion simulation

Automated Adatom Diffusion Workflow

A complete input-to-analysis workflow for simulating adatom diffusion on FCC metal surfaces using LAMMPS and EAM potentials, providing comparative datasets for copper and platinum that demonstrate how atomic mass and bonding strength affect surface dynamics, with automated Python analysis generating publication-ready visualizations.

Computational Biology
Molecular visualization of a methionine dipeptide structure from MD simulation

Mini-Protein Trajectory Generation

An automated GROMACS pipeline for generating high-fidelity molecular dynamics datasets suitable for machine learning, simulating capped dipeptides across nine residue types with 0.1 ps resolution and atomic force extraction optimized for training Neural Network Potentials.

Computational Social Science
Diagram of the Universal Message schema showing fields like ID, Text, Author, and Reply Sets that normalize data across platforms

Look, Don't Tweet: Unified Data Models for Social NLP

Bachelor’s thesis introducing PyConversations, an open-source library that normalizes over 308 million posts from Twitter, Reddit, Facebook, and 4chan into a unified data model for cross-platform social media research.

Computational Social Science
Diagram of the Universal Message schema showing fields like ID, Text, Author, and Reply Sets that normalize data across platforms

PyConversations: Social Media Conversational Analysis

Research project that investigated how different NLP models perform on social media data, finding that domain-specific approaches often outperform large pre-trained models. Includes PyConversations, a Python module for analyzing conversations across social media platforms.

Natural Language Processing
3D visualization of word embeddings showing semantic relationships in vector space

Word Embeddings in NLP: An Introduction

Learn how computers understand words through mathematical vectors, from simple counting methods to contextual embeddings that power modern NLP.

Scientific Computing
Flowchart diagram showing the recursive backtracking algorithm for constraint satisfaction in schedule generation

Term Schedule Optimizer

A freshman-year automation tool solving the university scheduling constraint satisfaction problem through web scraping Drexel’s Term Master Schedule and implementing recursive backtracking algorithm to generate every valid schedule permutation satisfying user-defined hard and soft constraints, used throughout undergrad 2016-2020.

Creative Work
Rubik's cube solver interface

Rubik's Cube Player - Drexel Music Hackathon 2017

A project I built with Emmanuel Espino and Jason Zogheb at the 2017 Drexel Music Hackathon. It uses computer vision to read a Rubik’s cube and generates music based on how solved each face is.

Creative Work
Rubik's Cube sonification hackathon project showing a Raspberry Pi setup with webcam reading cube colors and Python code on screen

Rubik's Cube Sonification

A 24-hour hackathon project exploring algorithmic musicology by using a webcam to scan a Rubik’s cube and generate audio based on color configuration, implementing first-principles waveform synthesis with byte-by-byte PCM generation and equal temperament frequency calculations to map visual entropy to harmonic resolution.