Skip to main content

Portfolio

Open Source Contributions
#

Xournal++
#

Open PNG files directly from the command line (#6402) — Merged
#

Added support for opening PNG files directly via xournalpp image.png, which automatically creates a new document with the image as the page background and resizes the page to match the image dimensions. Previously, users had to convert PNGs to PDF before annotating them.

  • Changes: 5 files, +68/−2 lines

Projects
#

Resumate
#

An ATS-friendly resume generator that assembles a Markdown-to-PDF pipeline so resumes require no manual formatting. Containerized with Docker so users and contributors avoid installing a full TeX distribution locally, and used AI agents to debug rendering issues and cross-check PDF output against ATS text-extraction behavior.

A3 Engine — High Performance C++ Game Engine
#

A 2D game engine built in C++ over a semester at the University of Michigan. Features a Lua scripting API for a component-based actor system, Box2D physics (rigid bodies, colliders, triggers, raycasting), SDL2 rendering, and a data-oriented particle system (SOA layout) that handles 200,000 active particles at a locked 60 FPS. Custom feature: native Nintendo Switch support via the devkitPro toolchain.

  • Repository: TechMaster85/a3_engine
  • Demo games: a2engine.orgThe Whispering Crown, Donna the Donut Pilot, Physics Obstacle Course
  • Tech stack: C++, SDL2, Lua 5.4, LuaBridge, Box2D 2.4.1, RapidJSON, GLM
  • Architecture: Component-based actors, publish/subscribe event system, deterministic particle system

Reinforcement Learning Agents
#

Implemented Q-learning and value iteration in Python, training agents to converge on optimal policies in grid worlds. Also built an adversarial-search game agent (Connect-4 / Tic-Tac-Toe) using minimax with alpha-beta pruning.

Spirit Catcher
#

A 3D platformer where players use a rope mechanic to catch wandering spirits. Owned the scripting and build-automation workstream on a 5-person team using Agile practices in Jira, programming camera control, gameplay scripting, and audio systems in C#, and automating cross-platform build and deployment scripts for Windows and macOS.

Insta485 — Full-Stack Social Media Platform
#

A full-stack social app with a React 19 SPA frontend and Flask REST API backend, deployed to AWS EC2. Modeled a normalized SQLite schema accessed via a Python data layer using parameterized queries to prevent SQL injection, with session-based authentication, Webpack bundling, and end-to-end testing with Cypress.

  • Source: available on request (private repo)
  • Tech stack: React, Flask, SQLite, Webpack, Cypress

Distributed Search Engine over MapReduce
#

Engineered a 6-stage Python MapReduce pipeline producing a partitioned inverted index with tf-idf weights. Designed Flask microservices where replicated index servers handle term lookups and a search server merges PageRank-scored results, with a custom partitioner sharding the index across replicas by hashing terms.

  • Source: available on request (private repo)
  • Tech stack: Python, Flask, MapReduce

Kinesis Camera
#

A Python streaming server on a Raspberry Pi that broadcasts real-time pose landmarks from an AI camera to networked clients, paired with a Unity/C# client that consumes the stream and renders skeletal landmarks on a separate machine. Deployed as a systemd service on the Raspberry Pi with auto-restart on boot.