Personal and School Projects
A few relevant projects from school and professional learning.
CrossPLC Fuzzing for OpenPLC
Forked OpenPLC runtime to support fuzzing instrumentation for PLC binaries generated from structured text. Replaced g++ with AFL++ instrumented clang and built a custom harness that overwrites PLC data with file-based binary input.
Private on Github until publication
Spikeball Launcher
I was responsible for the software on the STMF32 microcontroller for a spikeball launcher project.
The microcontroller used an onboard gyrscope to measuere launch angle, read from a distance sensor to determine when the ball was loaded, and controlled a motor to launch the ball at the appropriate time.
View on GitHub
Privacy Preserving Image Grayscaler
CPA-secure client/server project for server-side grayscaling of CKKS-encrypted images. The client chunks RGB channels into encrypted polynomials, and the server performs averaging-based grayscale on encrypted channel chunks.
View on GitHub
Chess App
Work-in-progress chess app with a React frontend and Java backend. Current focus is server setup and checkmate calculation.
View on GitHub
Sudoku
React-based Sudoku app using a backtracking algorithm to solve puzzles and generate boards of varying difficulty.
View on GitHub
Learning Outcome Tracker
Course project web app similar to Canvas that helps teachers track student learning outcomes.
View on GitHub
Memory Allocator
Dynamic memory allocator for a computer systems course that manages heap block requests with optimizations for speed and memory efficiency.
View on GitHub