- Math Major, Com Sci Minor, Sociology Minor
- Multiple State Showings
- NextUI, Jenkins, Express, Git, Python
A simplistiic generative AI website. I have setup a fully automated CI/CD pipeline using Jenkins and Gitea. The frontend website was built using NextUI, a fork of NextJs. The backend server is a very simple restful API built using Express and generates responses to prompts using Python.
- Java, Git, Gradle
I thought it'd be a fun side project to create a game engine using Java. This lead to the creation of the GraphicsEngine project in January 2022. So far I've managed to create an interesting but robust graphics system, implement audio on a basic level, and recreate the popular game pong. Currently the biggest roadblock is audio mixing. Clips can easily be played using Java but I have yet to find a line out on my system with volume control.
- JavaScript, TypeScript, npm, C++
Screeps is an online programming game I've been playing on and off since Feburary 2017 with multiple versions of code, each with their own approach to the problems proposed by Screeps. To make things easier in fall 2020 I swapped to using TypeScript and npm. Most recently this year I've swapped back to JavaScript and have been using C++ to simulate elements of the game at higher speeds.
- Java, Git, Maven, Gradle
During the summer of 2021 I picked up Minecraft plugin development as a hobby and was able to turn it into a form of side income during fall 2021. Projects were written in Java using Maven as a build tool, though eventually Gradle, and required extensive bug testing. During this time I also made a few public plugins (Nametag Maker, and RPG v2.0, AdminUtils) but couldn't ever give them the time they needed.
Advent Of Code (Dec 2021)
- Java, C, C++
For fun my friend and I started doing the Advent Of Code calendar in December 2021. To keep things interesting, each day I would switch languages additionally the problems presented were more about the algorithms than a feature some langauges had.
- C++
For robotics, it could sometimes be difficult to pick teams for finals. To solve this issue I created a match tracking program in C++ which operated within command prompt. The program essentially functioned like a basic match database which then could be used to average team scores and performance. This project used pointers and basic classes but no overloading.
Linux plays a strong role in my daily life. My main desktop computer has been running Arch for two years and previously ran Ubuntu for a time before that. Working with Arch, I've become very comfortable with the terminal and recovering my system from a broken state. At times there has been challenges such as playing Starcraft II. Frequently, Wine and Proton are sufficient solutions for these. The ease at which new software can be installed and updated in Linux alongside with tools such as ssh and rsync, for working with server projects, I've never looked back.
For a long time I've simply viewed GitHub as a way to save code and possible transfer it across systems. In classes, I was introduced to Git as a version control system and taught about branches, the stash, checkout, and more. Since then Git has been a great collaborative tool and has aided me greatly in both Screeps and more complicated projects alike.
For Java projects Gradle is my go-to build tool this is since Gradle can be setup very easily and be used to build standalone projects with little issue. For some projects, I've used Gradle to automatically deploy my code to a server for testing. Additionally when projects do require dependencies Gradle can be used to pull them from Maven Central and other repositories.
Although Maven is no longer my go-to build tool, I've worked with Maven quite a bit when developing Minecraft plugins. Maven is the default build tool in the template project for Spigot and makes it very easy to add other Minecraft server architecture or plugins as dependencies for a project. Where Maven initaly fell apart for me was in standalone projects and automatic deployment.
Currently in class my group is building a media review app. For this course I've been working on the back end side of things with Spring Boot and MySQL as my two areas of focus. In Spring Boot I've been able to send request media files (such as images), enforce HTTPS communications to protect passwords, and encode passwords so they're not saved in plain text.
Again for a class project I've been working on back end and have been set up the MySQL server along with the communications between Spring Boot and MySQL. Then in Spring Boot created the tables for MySQL.
Java is my go-to langauge for just about anything that doesn't heavily depend on performance. It is the langauge I have the most experience with, and through use of pattern matching, lambda references, and the built in libraries most things are fairly straight forward to implement.
JavaScript has always been a weird language. It finds use in both frontend interactive elements as well as backend servers alike. Between Screeps, AIFantasy, and funnily enough a Computer Graphics course, I've spent a lot of time working with the mess that is JavaScript.
Of course Java has it's downfalls at which point I turn to C++. C++ contains a lot of the features I'm familar with in Java whilst having higher performance overall.
TypeScript really surprised me on how much I had written with it on GitHub. Since Screeps was the only place I've used TypeScript, I don't feel comfortable putting anything above beginner for it, however I'm fairly familiar with the type checking provided by TypeScript.
Finally when nessicary I can use C to program at a system level.


