This section includes personal, school and work projects that I have either done or am currently working on. If you are interested in any of these things, feel free to email me for information or source code regarding my work.

Dynamic On-Demand Computing Systems:

The Dynamic On-Demand Computing Systems project leverages OpenStack Infrastructure-as-a-Service to provide a high performance, heterogeneous cloud computing system.  This effort is lead by the APEX group at the University of Southern California Information Sciences Institute.  Specifically, advanced virtualization techniques are investigated in relation to high-speed, low-latency interconnects and general purpose accelerators and GPUs to provide an efficient distributed architecture using virtual machines.  My role is primarily focused on providing nVidia Tesla based GPUs directly to virtual machines within OpenStack at near-native performance.  Furthermore, research lead to the investigation and successful usage of InfiniBand fabric within a cloud infrastructure, creating a true high performance cloud system.

The FutureGrid Project:

FutureGrid is a project to develop a high-performance grid cloud test bed that will allow scientists to collaboratively develop and test innovative approaches to parallel, grid, and cloud computing. The test bed is composed of a high-speed network connected to distributed clusters of high-performance computers. FutureGrid employs an array of virtualization technologies to allow the test bed to support a wide range of operating systems and evironments. The goal is to build a system that helps researchers identify cyberinfrastructure that best suits their scientific needs. The FutureGrid project is funded by the National Science Foundation (NSF) and is led by Indiana University with University of ChicagoUniversity of FloridaSan Diego Supercomputing CenterTexas Advanced Computing Center,  University of Virginia,  University of TennesseeUniversity of Southern CaliforniaDresdenPurdue University, and Grid 5000 as partner sites.

As a member of the Software Team, I have worked primarily on novel image generation and management tools for use across various IaaS cloud services, including Eucalyptus, Nimbus, and OpenNebula.  Furthermore, I have been involved in evaluating current and existing IaaS and virtualization technologies, a virtualized SMP machine, dynamic provisioning, experiment management design, HPC benchmarking, and supporting new platform services.


Truthy is a research project to study how memes spread on social media. A meme is a transmissible unit of information, such as a hashtag, phrase, or link.  An effective storage platform
is needed to satisfy special requirements for loading and storage of multi-terabyte datasets generated by Truthy.  My work in this project focused primarily towards evaluating NoSQL and database technologies , architecting effective hardware, and aiding in the evaluation of the IndexedHBase solution used.

The Cyberaide Project:

The Cyberaide Project is an interdisciplinary research effort on the forefront of a shift in computing technologies from traditional approaches to service oriented approaches while applying solutions in scientific applications. Current activities include the development of advanced scientific workflow paradigms, service virtualization, their exposure through portals, and the development of Cyberinfrastructure toolkits that make the use of advanced cyberinfrastructure  easier.

I primarily worked on the Cyberaide Shell and Cyberaide Portal.  Cyberaide Shell is an advanced but simple to use system shell which facilitates the use of current and future cyberinfrastructure. It’s based on the integration of semantically enhanced commands and a dynamic interfaces that allow users to access complex cyberinfrastructure in an easy, intuitive, and ad-hoc fashion.  The purpose of the Cyberaide Portal  is to develop an easy-access JavaScript grid abstraction layer, which includes reusable JavaScript APIs and a generic purpose Grid portal. Through the portal users can access Grid services through a web browser without the need to install and configure a Grid environment.

Rumor Psychology Research:

Along with Dr. Nicholas DiFonzo and Dr. Christopher Homan, I worked on rumor psychology research project to study the effects of rumors and how they propagate through different social network configurations. I am responsible for supporting all computing aspects of the project. This includes updating current software, implementing new software programs, assisting in data analysis and administering the project website. The majority of my time has been spent on implementing, debugging and maintaining the client/server application built for the CAPS study to collect and analyze data for the second study.

Intelligent Agents in Wireless Sensor Networks:

During the summer of 2007 I wrote a research paper exploring the different middleware solutions available for deploying intelligent agents in a wireless sensor network. A wide variety of software is reviewed, such as Lime, Agilla, Impala and Jade. You can find the paper here.

The Lattice Project:

The Lattice Project is an effort by a community of scientists at the University of Maryland to develop and deploy a comprehensive Grid system for scientific analysis. It was developed and maintained by Dr. Michael Cummings and Adam Bazinet under the University of Maryland Institute for Advanced Computer Studies (UMAICS). I worked for six months as an intern learning and developing for the project. My work consisted of updating and extending the Job manager between the Globus grid system and the BOINC desktop grid, as well as assisting Adam in enhancing GBSL, extending grid resources and creating new opportunities for the grid.


MathQuest was designed to teach 1st and 2nd grade students how to learn simple math such as addition, subtraction, and digit recognition. This project was created along with Ryan Smith, Brian Adriance, Maxwell (Jim) Dekle and Shane Thompson through our Software Engineering class. The main focus was not so much on the software, but simply a hands-on look at how the software development process works as a whole. The source code along with all of our documentation is available.

Puzzle Solver:

My Puzzle Solver is exactly what it sounds like… a program that solves puzzles! The idea was to create a generic Solver that generates all the possible configurations to solving the problem by passing information back and forth to the puzzle. My Computer Science 4 class required a Configuration Puzzles project, and this is what came out! I have implemented 4 puzzles: Clock, Water, Lloyd, and VClock. Shane Thompson and Mike Tangolics helped me with creating a generic solver along with the Water and Lloyd puzzles. All code has been written in C++, and is somewhere around 1500 lines of code.


wTry is a comprehensive submission system that uses a web interface designed by Noah Richards and Sean Strout. It was originally created to allow Java, C, C++ and C# code to be submitted and compiled all through a easy to use web interface that would be used in C# based CS1-3 classes taught at RIT. However, the new submission service is far better than the older Try submission system used by the entire CS department, so it is has been evaluated to see if it can be used for other classes. I had the opportunity to the design of this system and am responsible for writing some of the documentation for it, such as a quick wTry How-To.


This project was a simple java based game that i designed along with Sean Strout. It was a single player battleship game where when the user started the game a board was constructed and ships were randomly placed on the board. From there, the user could fire missiles to try to sink the ships. The main reason for this game’s creation was for a simple Computer Science 1 project, which would reinforce main programming concepts such as Object Oriented Programming, 2D arrays, and multi class programs. However, Strout decided to keep the current CS1 project, and instead the Battleship game was taken and redesigned to include File I/O, Inheritance, and Exception Handling and is currently being used as a CS2 Battleship Project.

Eclipse How-To:

This was a simple thing that i did while working for professor Sean Strout. The project included learning how the Eclipse SDK worked under java along with CVS, and a simple tutorial. From there I set up a CVS repository that linked to RIT’s CS network, instructed Professor Strout how to use the program, and wrote a simple tutorial to get the users started with writing java programs with Eclipse.

CS Chat:

The second project in Computer Science 2 required us to build a useable chat client that would allow instant messaging between two clients. I worked with Shane Thompson on this project, and in the end we were able to get all client functionality working as well and added insome GUI enhancements that made improved the program’s functionality. The end result was a simple interface that functioned similar to an AIM client that using a CS sever for all client connections.