Supports starting jobs as background processes with &.
Supports many builtin commands such as fg (foreground), bg (background), jobs (provides job list), kill, stop, and history (implemented with GNU history libarary).
This shell implementation is an augmented, revisited version of a class project.
Code available on request (cannot be publically available for academic integrity reasons)
Threadpool (C)
Implementation of a fork-join threadpool.
Threadpools allow for programmers to more easily write multithreaded code.
Rather than managing threads on a micro level, the programmer merely must split their code into tasks, then submit those tasks to the threadpool. The threadpool then returns the results of these tasks back to the programmer.
Shows significant speedup when tested with mergesort, quicksort, n-queens, and similar programs when compared to serial implementations.
This threadpool implementation is an augmented, revisited version of a class project.
Code available on request (cannot be publically available for academic integrity reasons)
This is a historical project which I wrote in high school. It was my first game project, which is why it is written in Java with Swing (not exactly the ideal game engine).
I didn't have a lot of instruction at the time, and mostly had to figure things out for myself - so I used what I knew, which was Java at the time.
Gamejam project which implements the text parser for a simple adventure game in Godot Engine.
I made this while exploring the Godot Engine, as a relatively basic entry point.
The unique aspect of the game is that it forcibly loops after a certain number of player inputs. Additionally, aspects of the game change on each loop. It has some slight horror elements.
The most programatically interesting part of this website is the Plateau viewer on the previous Projects page. It's pure CSS and JavaScript, no libraries or anything - just like the rest of this site.
Collection of a whole lot of common data structures and algorithms programmed by me in Java.
Includes implementations of: lists, deques, hashtables, binary search trees, a stringbuilder, heaps, mergesort, quicksort, radix sort (on integers).
Also includes a lot of solutions to leetcode style problems encompassing a wide array of topics such as bit manipulation, graphs, stacks/queues, string manipulation, and linked nodes/lists.