Welcome to my portfolio. I created this site to highlight some of the cool projects I've had the opportunity to be a part of during my undergraduate and graduate careers. This page is a project in itself - featuring spiffy parallax scrolling! Keep scrolling down to see the remainder of my portfolio, and feel free to use the timeline at the bottom to jump around.

Me, webdeving one of my first websites circa 2002.

My first exposure to computer science came through National Computer Camps, a summer camp designed to introduce children and teens to programming. I'm thankful that I was able to attend such a great camp, because it really sparked my interest in computer science. I became more and more interested in software as most of my hobbies outside Boy Scouts tended to revolve around computers. I enrolled at Clemson University in August 2007 with the intention of majoring in either CompE or EE but it became very clear to me after dabbling in Matlab and Mathematica that my true passion was with software.

Early in my undergraduate program, I spent two semesters working on this map authoring tool as part of a creative inquiry in tablet PC application development. The purpose of the tool was to allow a campus administrator to easily map out walking routes on a campus, which then could be used to provide a user with walking directions. I was given an existing application and asked to improve functionality and usability. I used .NET 3.5 WPF features to improve the interface as well as the performance of the tool. I also used Microsoft SQL Server to store data points.

Improved CampusMap Authoring Tool GUI
Network structure
Performance results collected from Clemson's Palmetto Cluster

For my final project in my Distributed and Cluster Computing class, I worked with two partners to design and implement a novel distributed (P2P) file sharing system using Python's Flask web microframework. After the semester came to a close, our professor urged us to continue the project by evaluating our system using Clemson's Palmetto Cluster and submitting a paper to a conference. We ended up presenting PBJ as a poster at the 2012 ACM Southeast Regional Conference.
PBJ on github

As a semester project in my Database Management Systems class, I developed an online asynchronous "Guess Who?" game. I designed a normalized MySQL database and used stored procedures to implement all the game logic. PHP, Javascript, and HTML were used for the front end. It's not the prettiest game, but hey, it was a databases class and I had deadlines to make!

Guess Who? boards are generated from Clemson SoC faculty pictures
Try the live coverage map out for yourself!

I have been working on this project for over 3 years. It started as a creative inquiry with Dr. Martin. My task was to build an extensible network testing tool that can be used to gather a variety of metrics about any given network. One of the defining goals of the project was to create a tool that was network, device, and OS agnostic. I designed a framework that consists of a C++ server, C++ and Android clients, MySQL database, and a Javascript visualization client. This system has gone through a few overhauls in the past few years and other students have contributed to the effort, but I am proud to say that I have been working on this project since inception and have played the role of lead developer. The project continues to be expanded upon and is finding new life in some of my graduate research projects.

One of my first classes in grad school was one of the most informative and entertaining courses that I have ever been in. We were tasked with creating a video game using C++ and SDL. The video game was used to teach us some of the intricacies of STL and C++, Effective C++ by Scott Meyers being our bible. I created a video game about my brother's cat, Silenus. He has a thing for cockroaches, so in this game he hunts down cockroaches and vomits on them.

A video from the later stages of the game's development
A CMC curve depicting the performance of each respective facial recognition algorithm

I also took a class in biometrics. My semester project was a performance evaluation of different appearance based facial recognition algorithms. These algorithms achieved facial recognition through the use of different dimensionality reduction techniques: PCA, LDA, and ICA. I implemented each of these algorithms using Matlab, and tested their performance using a common public dataset, Faces94.

One of the more interesting classes I took was called Embedded Network Systems. In this class, we developed against small embedded devices, Telos Motes, using TinyOS and nesC. We networked these devices together in mesh networks using CC2420 2.4GHz 802.15.4 radios. Myself and a partner worked together on a semester project evaluating the use of radio signal attenuation as an early wildfire detection mechanism. The results of our project are presented in this paper.

The experiment design, including estimated fresnel zones
The peak flame during the third trial of our testing
Me and the Canton Tower on my trip to Guangzhou

As part of both my thesis research and my research assistantship I have been helping create a vertical handover solution for the GENI Wireless group. We have been working towards creating a SDN-based IP mobility solution that will provide seamless handovers between WiFi and WiMAX in our wireless test bed. We have published a paper on our work that we presented at TRIDENTCOM 2014 in Guangzhou, China! I have uploaded a copy of our paper here.

Although it's a rare occasion, I sometimes find myself with some free time. Being the geek that I am, I tend to spend that time creating things. One example of one of my more recent creations is an open-source Android application that allows users to programmatically control T-Mobile's IMS WiFi Calling feature. It's probably not something that the average user needs to do, but it is something that I wanted to be able to do with my phone, so I made it. It involved reverse engineering parts of T-Mobile's WiFi Calling apps, which I have detailed in my blog. The full source is available on my Github, and the app itself is available on the play store.

My responsibilities as a graduate research assistant included an administrative role in the SciWiNet MVNO project. SciWiNet is a Sprint/Arterra MVNO that is geared towards the research community. The motivation behind the project is to provide researchers with a different service plan that avoids a monthly subscription fee for each device by instead allowing each device to use the same "bucket" of data, which is pre-purchased in quantities of gigabytes. Along with user support, I have been building some services such as an Android app that will be provided to users to make the SciWiNet service more enticing.

AccountGuard is the name of a Facebook application that myself and a partner wrote for our Data Mining course. The idea was to provide a service that Facebook users could subscribe to that would alert them if anomalous messages had been sent from their account, indicating it had been hacked. The tools we used are RapidMiner, PHP, Javascript, MySQL, Amazon AWS, and the Facebook API. Using a combination of Rapidminer Server's web API and PHP, we created an unsupervised distance-based global outlier detection system. We used TF-IDF to compare the language used in each new message with that of the user's historical messages. The result was a system that worked reasonably well, though it probably could have used some tweaks. We did not publish it publicly because... well, we can't afford to fund an EC2 server indefinitely.

AccountGuard Facebook app control panel

I am in currently in the process of finishing up my thesis on the design and implementation of a cloud-based vertical handover decision scheme for heterogeneous wireless networks. I will be graduating from Clemson University with a M.S. in Computer Science on 8/8/2014. I'm also currently looking for a job that will challenge me technically and stimulate my passion for problem solving.

This portfolio was created from scratch by yours truly, using Laravel, skrollr.js, bootstrap, and HTML5/Sass/CSS3. The concept came to me during one of my morning showers, and I decided that it was worthy of bringing to fruition. The development of this site has been an exercise in web design and has been a really fun project that has helped get me up to speed with some of the latest and greatest in web technologies. I hope you enjoyed navigating this portfolio as much as I have enjoyed creating it.