My Projects


PeopleMates

Java | Android Development | Balsamiq

A reliable and convenient food delivery service Android application. Users can choose to deliver food for others while picking up orders for theirselves. Currently in development.

PhotoAnnotate

Java | Android Development

Photo Annotation Android App that allows taking and annotating photos.

CryptoConvert

Java | Android Development

Cryptocurrency Converter Android App that converts currencies between USD, Bitcoin, and Dogecoin using CoinMarketCap API live exchange rates.

This Website

HTML | CSS | JavaScript | jQuery | PHP | Bootstrap

HTML, CSS, JavaScript with jQuery and Bootstrap to create this site. Further used PHP for checking inputs and auto-emailing myself for the Contact Me page.

Network Attack

nmap | Bash Script | Wireshark | C | tcpdump | sslsniff | Python | scapy

Exploited FTP vulnerability, analyzed and captured packets using Wireshark and tcpdump, manipulated seed in pseudo-random number generators, abused certificates to rewrite network traffic, performed DNS spoofing to impersonate a DNS server and launch DNS spoofing attacks which redirects victims to desired destinations, and wrote bash scripts to automate the processes.

Secure File Storage and Sharing

Python | PyCrypto

Ensures confidentiality, integrity, and authenticity in a compromised server that allows uploading/downloading, sharing, revoking, and updating files.

Exploiting Vulnerable C Code

Bash Script | C

Allows attacker to gain root access by taking advantage of buffer overflows, off-by-one, and ret2eax to bypass Address Space Layout Randomization in C code.

AI Pac-Man Game

Python | PyCharm

Created an intelligent Pac-Man that maximizes winning using Searching Algorithms, Constraint Satisfaction Problems, Minimax, Expectimax, Markov Decision Processes, Reinforcement Learning, Bayes’ Nets, Hidden Markov Models, Inference, and Classification using Perceptrons.

Database System

Java | SQL

Includes File Management, B+ trees, Simple Nested Loop Join, Page Nested Loop Join, Block Nested Loop Join, Grace Hash Join, Query Optimization, and Concurrency Control.

Web Traffic Recorder

Java | Apache Hadoop | MapReduce

Used MapReduce and Hadoop to record and sort data using like the NSA’s PRISM surveillance program.

Optimized Image Processor

C | OpenMP | SIMD | Loop Unrolling

Optimized 2D convolution on images, using kernels to achieve image filter effects such as sharpening, blurring, inverting, etc. Optimization techniques include SSE batch processing, register and cache blocking, loop unrolling, matrix padding, and OpenMP multi-threading and parallel processing, which achieved up to 9x speedup compared to a naive image processor.

Two-Cycle Pipelined Processor Design

Logisim

Designed a 32-bit two-cycle pipelined processor with Register File, ALU, and CPU in Logisim which is compatible with machine code outputs from MARS (MIPS) with a specified Instruction Set Architecture including arithmetic operations, writing/reading to/from registers and memory, and instruction logic such as jumping and branching.

MIPS Converter and Processor

C | MIPS | MARS

Designed a two-pass Assembler that translates a subset of the MIPS instruction set to machine code in C and a Linker that processes object files and generates an executable file in MIPS. Parses instructions in the MIPS Instruction Set Architecture to simulate a processor operating on the MIPS instruction set. Sample instructions include bit shifting, reading/writing in memory, arithmetic operations, conditional statements, instruction execution logic jumps, and system calls.

Spell Checker

C

Created a spell checker that notifies if a word has been changed.

Gitlet

Java

Created a serializable version-control system of Git called Gitlet. Can take in commands including init, add, commit, rm, log, global-log, find, status, checkout, branch, rm-branch, reset, and merge.

Lines of Action (Game)

Java

Created Lines of Action board game that allows player vs. player, player vs. AI, and AI vs. AI gameplay. Used alpha-beta pruning for the AI.

Simple Database System and SQL Interpreter

Java

Created a database system and SQL interpreter.

Canfield Solitaire (Game)

Java

Created an undo function and GUI for Canfield Solitaire card game.

Scheme Interpreter

Python | Scheme

Implemented a Scheme (Lisp) interpreter.

Ants vs. SomeBees (Game)

Python

Implemented Ants vs. SomeBees tower defense game. (Similar to Plants vs. Zombies game.)

Restaurant Ratings Map

Python

Implemented Yelp-like data visualization app that gives restaurant ratings on Google Maps.

Hog (Game)

Python

Implemented the text-based dice game of Hog and increased its winning rate through several different strategies using probability and other heuristics.