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!
Sudoku
Cross-platform Sudoku Game Written in Flutter
This implementation of sudoku is a cross-platform game written in Flutter where a 9x9 grid is filled in with the numbers 1-9, and conflicts must be avoided.
Being my first Flutter project and first cross-platform game, I wrote this to learn a lot about different development platforms, a new language, and new programming skills.
Verse
Oh yay, yet another wordle-like game!
Verse! is a guess-the-word game where you try to infer the word given the clues from your last guess. The player competes with a bot I wrote, which attempts to guess the word separately using extremely effective filtering techniques, helping it achieve an impressive average guess rate of ~3.6 on words of 5 letters. I wrote this using only vanilla JavaScript and Bootstrap.
Math Book
A comprehensive mathematics textbook, free for all!
I’m writing a mathematics book, intended on covering all the mathematics ranging from numbers and arithmetic to calculus and differential equations. The book itself is available online for free (that’s a good price!) and through the raw Markdown source!
OEIS
The ongoing quest to program the OEIS database.
This is a console program that contains over two hundred algorithms to generate the sequences found in the OEIS database. The OEIS database is a massive set of integer sequences, some of which are trivial, but many are extremely complex, involving combinatorics, statistics, or other high-level mathematical concepts. Many will overflow a standard int or float, so overflow issues are overcome with arbitrary precision.
Cliques
Finding words with unique letters in a word list!
Cliques is a Python program that, given a list of words, finds a subset of those words where each letter is unique. For instance, if wanted to find cliques of words that are 5 letters long, it would attempt to find 5 different words to cover 25 of 26 letters. There is also fuzzy search allowing vowels to overlap exactly once, raising the chances of finding near-cliques (more exciting than zero-cliques). This was used to help build a bot strategy for my Verse game!
Notes Markdown Highlighter
Custom Highlighter and Command Extension for VSCode.
Another Visual Studio Code Extension I wrote because I wanted to move away from OneNote for my notes. This way, all notes can be highlighted in a particular way, which helps make notes easier to read and maintain.
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.





























































