C/C++ SDL3 WASM Emscripten JavaScript HTML
Built a fully functional Game Boy emulator and deployed it to the browser as WebAssembly using Emscripten,
using SDL3 + JavaScript for graphics, audio, and controls.
- Implemented a cycle-accurate Sharp SM83 CPU capable of executing the SM83's modified Intel 8080/Zilog Z80 instruction set and interrupts to match the behavior of the original Game Boy
- Implemented a MMU (Memory Management Unit) using public Game Boy technical references; maps different memory address regions for cartridge ROM, RAM, and memory-mapped IO registers
- Reverse-engineered the PPU (Picture Processing Unit) to render using the SDL3 GUI framework; processed keyboard inputs to joypad MMIO
- Validated behavior against real ROMs including Pokemon Red/Blue and Tetris; performed the MissingNo glitch with no issues or crashes
C++ CMake Vulkan OpenGL SDL3
Designed a modular engine with separate Vulkan and OpenGL backends behind a single abstract RenderDevice API.
Implemented a complete Vulkan rendering path mirrored in OpenGL.
- Built mesh/model and texture loaders, uniform buffer updates, and a consistent resource interface across backends
- Integrated a practical ECS architecture with a lightweight physics layer
- Used modern C++ (perfect forwarding, variadic templates, type traits, smart pointers, STL) to ensure safety and performance
Java Android Firebase
Collaborated in a group with 5 other people to implement UI designs and mockups from Figma into a functioning Android app.
- Built the models and views with Java/XML for the MVC design pattern; persisted event and user data in Firestore (NoSQL)
- Implemented a background service for push notifications and timely updates
- Created and integrated unit tests using Expresso UI tests