Featured

These are projects that I am currently most proud to have created


All Projects

All the projects that I have created are listed below!

R6S Roulette

A companion app to Tom Clancy's Rainbow Six Siege

R6S Roulette is a companion web application for the video game Tom Clancy’s Rainbow Six Siege by Ubisoft made to spice up how you play the game. Users can randomly select an operator or weapon, filter out the full dataset via UI elements (e.g., checkboxes, dropdowns), or view information about the game.

Geography Quiz

Test your geography skills!

My geography quiz allows users to interact with a map of a chosen continent and select the randomly generated country. Each quiz runs through the entire continent and tracks the user’s score and time.

Nebulous Color Themes

Published color-theme pack for Visual Studio Code.

A Visual Studio Code Extension I wrote because I wanted my own theme for VSCode. After staring at so many different themes, it should at least appeal to you. So, I made this pack of themes as my first VSCode Extension.

Tic-Tac-Toe

Tic-Tac-Toe written using React

This is yet another rendition of the tic-tac-toe game. My first application written with ReactJS, it establishes the use of ReactJS basics like React.createElement and ReactDOM.createRoot to build the site. The AI is based on the minimax algorithm.

Num2Words

Converts any number to its English representation

I wrote a Go package that converts a number to its English representation. For example, 15552 converts to fifteen thousand five hundred fifty two. A number of any size can be converted because this package makes use of arbitrary precision.

Unit Converter

A clean and simple unit converter

This site lets users convert various unit types; including length, area, volume, mass, time, energy, and temperature. There is a formula that is shown that can be used by the user to approximate the conversion.

Homepage

My resume page (the one you're looking at!)

My website has been in many forms. The latest involves static site generation via Hugo, a standalone HTML generation package written in Go.

Hugo builds the site using the defined templates and layouts, and does so using GitHub Actions, which builds the site efficiently server-side every time I push. That means that the site can be efficiently managed locally, but be stored efficiently (e.g., minified) on the server.

GoBigger

A Go file to expand upon Go's arbitrary precision package, math/big.

I made this after my gobig repository proved to be too inflexible and not useful enough. This expands upon Go’s math/big package and fixes some of the issues of my older GoBig Go package, such as ease of use, simplified wrapper layer, and extended features.

Rosalind

Algorithms for problems from Rosalind

Rosalind is a bioinformatics programming platform with numerous problems related to bioinformatics. This repo contains a few solutions that I wrote to solve these problems.

Project Euler

Solving problems from Project Euler

Project Euler is a mathematics platform with over 900 problems. These problems range in difficulty and their solutions require designing an efficient algorithm and mathematical skills. This repo contains some solutions that I wrote to solve these problems.

WebGL Demos

The landing page for my WebGL demos

These pages demonstrate my ability to use WebGL. The demos range from something simple like basic animation to more complicated demos such as lighting and shading.

GoSort Benchmark

Benchmarks many different sorting algorithms in Go

This program benchmarks the performance of 22 different sorting algorithms. The time to execute each of the sorting algorithms is compared. Concurrency is used to reduce the overall execution time of the program.

GoSort

Sorting algorithms written in Go

This Go library implements 22 different sorting algorithms. This includes: Bubble, Quicksort, Radix, Merge, Insertion, Shell, and my favorite, Counting Sort.

CSort

Sorting algorithms written in C++

This C++ library implements several different sorting algorithms. This includes: Bubble, Insertion, Quicksort, Selection, and Counting Sort. I also wrote a repo to test this library, found here: Link.

libcds

Data structures written in C++

This C++ library implements several different data structures. The repo also contains test programs to test this library.

GoBig

A simple Go package to make using arbitrary precision a bit easier

When using Go’s arbitrary precision packages, I found that readability plummeted when performing complex mathematical operations with big numbers. I wrote this package that wraps the built-in arbitrary precision to improve readability, maintainability, and reduce keystrokes.

This has since been replaced by GoBigger, a new file I made to wrap things much easier.

Java Sudoku

An implementation of Sudoku in Java

A desktop Java application I wrote in college to teach myself AWT/Swing (along with the Tic-Tac-Toe Java program). It features a 9x9 grid and 4 difficulties. A player can erase their inputs, get hints, or reset the board.

Java Tic Tac Toe

An implementation of Tic-Tac-Toe in Java

A desktop Java application I wrote in college to teach myself AWT/Swing (along with the Sudoku Java program). It features a 3x3 grid. It can be played 2-player, or against an AI, with 4 difficulties. A player can erase their inputs and start over.