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