Programming Portfolio
Under Construction
This portfolio is a work in progress. There is no ETA.
With roughly 25 projects to present and discuss it may take some time.
Orthanc PHI Filter Plugin
2022
The plugin is designed to be entirely configuration-driven. Researchers define PHI redaction rules, date truncation strategies, and file organization policies through a JSON configuration file hosted alongside the Orthanc server. This design allows privacy requirements and data-handling conventions to change without recompilation or redeployment, making the system adaptable to evolving research needs. In addition to PHI removal, the configuration supports controlled truncation of sensitive date fields and flexible organization of stored images based on derived metadata.
Hypermaze Prototype
2016
The maze is generated using a graph expansion strategy rooted at a single starting node. Rather than constructing a fixed-width or spatially bounded layout, the algorithm grows outward in generations, with newly created nodes queued for potential expansion. This approach allows the structure to evolve organically while maintaining control over depth, branching, and connectivity. A double-ended queue is used to manage expansion order, making it possible to bias growth behavior without committing to a rigid traversal pattern.
Word Search with Threads
2015
Solving a word search puzzle is straightforward, but naive implementations waste computation on comparisons that are guaranteed to fail. This work focuses on eliminating unnecessary string comparisons through data shaping and selective parallel execution.
Rover Recursive Pathfinding
2014
A recursive pathfinding algorithm implemented under deep traversal constraints, where call-stack behavior becomes a first-order design concern. The implementation distinguishes recursive structure from recursive behavior, preserving correctness through controlled stack unwinding and explicit backtracking.
Cheryl Engine
2014
A modular C++ game engine redesigned from the ground up, separating rendering, asset management, and game architecture into independent libraries. The work emphasizes asset lifecycle control, reduced build coupling, and a reusable multi-threaded runtime.
A* Pathfinding
2013
An A* pathfinding implementation over procedurally generated mazes, with multiple container-backed variants for the Open and Closed lists. The implementation compares ordered insertion strategies and examines how data structure choices affect correctness, robustness, and observed runtime behavior.