Kai Harrelson

Software Engineer

About Me

Software engineer with 4+ years of experience designing and implementing robust & sustainable systems using APIs and pure dedication. Undeniable ability to utilize backend knowledge and critical thinking to solve real world problems.

Skills

Interesting Projects (more on my github)

Computer Algebra System: CLI-based calculator (Rust)

A CLI-based calculator for solving general equations supporting: functions, variables, exponents, implicit multiplication, & general math operations. Implementation is very similar to a programming language interpreter, like python or lua, using a lexer to tokenize input, which is fed into an AST parser, and finally interpreted to output equation results.

[Github link]

CrumbMMO: MMORPG Minecraft plugin (Java + Spigot)

A Minecraft server plugin that vastly changes the core game logic to support more complex, data driven, developement of, specifically rpg-like, games. Currently has: a robust, scalable, & data driven ECS (Entity Component System) to support and keep track of new custom enemies, a scalable, data driven system for adding custom items, an entirely new system for entity stats, and a robust command system for debugging & giving power to players.

[Github link] Currently working on a major refactor, so the repo is outdated.

Lehman Automation: An automated contact & logging for my teacher (Go)

Unfortunately the teacher this was made for didnt have the time to help me test this using a teacher account so I have no clue if this works as intended. However, its supposed to make calls to the Canvas API (the service my school used for online assignments) to get recently graded submissions. Then, if a submission was given a failing grade it would get that students contact info using the Google Sheets API and email said student, notifying them of the their failing grade and sending them a document containing assignment makeup & retake information. After all that it would then update another spreadsheet containing logs of every automated contact that was made. This project was fun because I had to figure out how the poorly documented Canvas API worked and use other Google APIs to solve a real world problem.

[Github link] I have no documentation for how this works because I had no way of knowing if it DID work

Pong Online (Go)

A simple client & server that allows players to play Pong online. I created this because I wanted to learn how servers, specifically game servers work. I had a basic idea but I wanted to expand my knowledge. While writing the worlds jankiest server I realised that I still didnt know what kind of game I wanted to make, so I decided on the simplest multiplayer game I could think of, Pong. The game itself wasn't very complex (shocking) but I still hit some roadblocks. The biggest of which cost me about 5 hours because I didn't know how to rotate a vector and I ended up creating a Desmos account to mess with the equations until I understood. Another problem I ran into was when testing multiplayer with my friend, on a different OS & network. So when things went wrong on his end I was always very lost, not knowing if it was a cross-platform issue, or a networking issue. I still think I have a lot to learn about game servers but I am proud of what I was able to create given I had almost 0 knowledge going in.

[Github link] If anything breaks, please report the issue

Wordle Solver: Algorithm for solving the daily Wordle (Python)

When Wordle blew up in popularity I realised that I was very bad at it, so I wanted to make an program to solve Wordle faster and in fewer guesses than my friends. At the time you could get the list of all the possible Wordle solutions via inspect element, this was the core of my program. Using the list of solutions, I generated a dataset ranking how common every first, last, & combination of 2 letters assigning them a "weight". Then I simply used user input of g(reen), y(ellow), or b(lack) for each letter of the generated guess to filter out possible solutions, and ranking the remaining solutions based on the generated dataset. In the end I made a program that not only solved Wordle faster than a human, but also in less guesses on average. I submitted this project for my computer science final and got a 100% and a nice note from my teacher.

[Github link] Over 3 years old, not sure if it still works

Socials / Contact