Languages
Python, Java, JavaScript, R, Rust, C
Linux Shell in C
This is a classic project for undergraduate computer science students and was a culminating project/homework for
my introductory computer systems course at Macalester College. This project exemplifies my understanding of the C programming
language and allowed me to apply a number of skills and techniques that I learned in computer systems including
array usage and allocation, pointer math, and the basics of parallel processes. Check out the repository below.
Full-Stack Engineering
HTML, CSS, Node.js, Google Firebase, VSCode, Jira
Mac Virtual Trade Center
This project was built for my software development course at Macalester College, and provides a space for
Macalester students and faculty to buy, sell and trade used goods at little-to-no cost. The project was built
using vanilla JavaScript, HTML, CSS, npm for package mangement, the Google Firebase SDK for backend services
including the Firestore NoSQL database and Webpack CLI for module bundling. Check out the repository
below.
Algorithms & Data Structures
Algorithm design & analysis, algorithm patterns, proof methods, numerical & ML algorithms
Algorithms for Convex Polygon Triangulation
This project was a brief introduction to and exploration of popular triangulation algorithms for convex
polygons. This served as a culminating project to my introductory algorithms course at Macalester College, and
was my first experience writing a research-style paper. The project includes an implementtion of the ear-clipping
algorithm in Java using quick-hull and selection sort. Check out the links below to see our work in more detail.
Machine Learning & Data Science
NumPy, SciPy, PyTorch, Pandas, Plotly, matplotlib, RStudio, Tidyverse, Wolfram Mathematica
Digit Classififcation Algorithm
This was a brief personal project inspired by a homework assignment in my undergraduate numerical analysis course.
Using a dataset containing nearly 10,000 images of handwritten digits (0-9), I wrote two machine learning algorithms to
classify the images. The first algorithm uses a Least Squares approach, and is implemented in three different ways
including via the normal equations, the built in QR algorithm in R, and via the Singular Value Decomposition. The other
approach uses the Low Rank Approximation via the Singular Value Decomposition. Check out the project below.