Projects Portfolio
A retro-style typing game built entirely in x86 Assembly
Language, featuring customizable difficulty levels and an
arcade-inspired UI. Challenge your typing speed as words
fall from the top of the screen!
VIDEO
Project Overview
This typing game demonstrates low-level programming
expertise by implementing an interactive arcade
experience entirely in x86 Assembly Language. Linked
with the Irvine Library, the project features dynamic
word generation, adjustable game speed, and a polished
user interface inspired by the popular ZType game.
Players race against falling words, testing both their
typing accuracy and speed. The project showcases my
ability to work with hardware-level programming concepts
including memory management, real-time input handling,
and graphics rendering—all without the abstractions of
high-level languages.
x86 Assembly
Irvine Library
Real-time Input
Memory Management
A C++ graphing calculator that parses mathematical
expressions using the Shunting Yard algorithm and renders
real-time plots with custom data structures.
VIDEO
Project Overview
This graphing calculator showcases low-level systems
programming and algorithm implementation in C++. Built
from the ground up with custom linked-list-based Stack
and Queue data structures, it uses the Shunting Yard
algorithm to parse complex mathematical expressions and
converts them to Reverse Polish Notation (RPN) for
efficient evaluation. The SFML graphics library powers
real-time visualization, rendering smooth function plots
as users input equations. This project demonstrates
strong fundamentals in data structures, parsing
algorithms, and graphics programming—all without relying
on high-level abstractions or libraries for core
functionality.
C++
SFML Graphics
Shunting Yard Algorithm
Custom Data Structures
RPN Evaluation
A lightweight C++ record/table engine featuring SQL-like
query processing, B+ tree indexing, and binary file storage.
Implements a complete query pipeline from tokenization
through shunting-yard parsing to RPN evaluation.
VIDEO
Project Overview
Record-tables showcases end-to-end systems programming
in modern C++. The project implements a minimal but
functional database engine that processes SQL-like
queries through a sophisticated pipeline: a tokenizer
breaks down user input, a shunting-yard parser converts
expressions to Reverse Polish Notation, and an RPN
evaluator executes queries over B+ tree-indexed data
stored in binary files. What makes this project stand
out is its from-scratch implementation of core data
structures—including a B+ tree for logarithmic-time
lookups, doubly linked lists, stacks, and queues—without
relying on STL containers for the engine core.
C++
B+ Tree Indexing
SQL Parser
Binary File I/O
CMake
GoogleTest
A fully functional calculator built from scratch using x86
Assembly language and the Irvine Library. Features
mathematical operations with ASCII, unpacked BCD, and packed
BCD number manipulations.
VIDEO
Project Overview
This project showcases my ability to work at the
hardware-software interface by implementing a calculator
entirely in Assembly language. Rather than relying on
high-level abstractions, I manually handled number
conversions between ASCII and BCD formats, implemented
arithmetic operations at the bit level, and managed
memory directly. This project demonstrates not just
programming skill, but a deep understanding of how
computers process data at the most fundamental
level—perfect for roles requiring systems programming,
embedded development, or performance-critical
applications.
x86 Assembly
Irvine Library
BCD Arithmetic
Memory Management