Skip to content
View math0898's full-sized avatar
  • Iowa
  • 15:58 (UTC -05:00)

Block or report math0898

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don't include any personal information such as legal names or email addresses. Markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
math0898/README.md

Education

University (2019 -> 2023)

  • Math Major, Com Sci Minor, Sociology Minor

FIRST Tech Challenge (2013 -> 2019) - Lead Programmer

  • Multiple State Showings

Projects

AIFantasy (Inactive)

  • 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.

Screeps, 1.0, 2.0, 3.0 (Feb 2017 -> Present)

  • 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.

Freelance Minecraft Plugins (Sep 2021 -> Present)

  • 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.

FTC Console Utility (Nov 2017 -> Jan 2018) - Solo Developer

  • 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.

Technologies

Linux (Experienced)

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.

Git (Experienced)

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.

Gradle (Intermediate)

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.

Maven (Beginner)

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.

Spring Boot (Beginner)

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.

MySQL (Beginner)

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.

Languages

Top Langs

Java (Experienced)

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 (Experienced)

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.

C++ (Intermediate)

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 (Beginner)

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.

C (Beginner)

Finally when nessicary I can use C to program at a system level.

Pinned Loading

  1. SugaEngine SugaEngine Public

    The goal of this project is to make a Graphics Engine in Java supporting both 2d and 3d graphics in a way that could be used in a game. It may end up containing components of a Physics engine.

    Java

  2. AdventOfCode AdventOfCode Public

    This is my code for the 2021 and 2022 Advent Of Code. I'm switching between Java, C++, and C between the days to keep things fresh.

    C

  3. Screeps-3.0 Screeps-3.0 Public

    Wow it's that time again. It's time for Screeps 3.0!!! XD Why do I keep doing this.

    C++

  4. RPGFramework RPGFramework Public

    The main framework plugin used for all of Math0898/Sugaku's RPG plugins.

    Java 1 1

  5. AutoUpdater AutoUpdater Public

    This plugin automatically clones, and pulls from the offical PaperMC Github. Then it builds the server jar before replacing the one currently running. After a restart this will result in an updated…

    Java

  6. Chess Chess Public

    A basic chess game written in C. I made this project to familiarize myself more with C and indirectly study for an exam.

    C