Performed debugging of the C/Java OCAP middleware stack to reduce bugs, improve performance, and to help design a better implementation.

Designed tests in Python, Perl, and Bash to measure and improve OCAP’s application bootup, channel change, and general performance.

01/10-07/10

Research Assistant, Georgia Tech Research Institute, Atlanta.

Mobile Application Research Assistant

Implemented an Android application to detect other devices and signal a custom video server to enable video forwarding.

Designed and implemented a VLC video server to intelligently switch video between devices with multiple different form factors.

Researched the use of interactive television and the various different vendor’s interactive television solutions.

05/04-07/10

Research Assistant, Georia Institute of Technology, Atlanta.

Virtual Environment Networking Research Assistant

Created various unique signal processing algorithms to reduce the effect of network delay and jitter. Various machine learning techniques were compared to traditional dead reckoning for state prediction and distribution.

Architected and programmed various applications and tools in C++ and Python for the proposed research. The software included a 3D animation viewer in C++ and Java, a 3D collaborative virtual environment in C++, a simulator for testing signal processing algorithms in Python, and a Neural Network simulation using C#.

Projects

I suppose listing my work on this site is a bit meta.
I used to have a wordpress site that contained all of my work but I changed that out
for my own custom built rails site you see here. Unfortunately I don't have a good
reason to explain my switch. As a software developer I just felt if I am going to
have a website that I might as well just build it myself. In my career I have also
flipped back and forth between using rails and Python for web development.
After starting this project off in Django I switch to rails as still think it
is the most complete framework out there. No thanks node.js. On this site I spent a lot of time
making my web resume look like my latex one and I think it turned out well. Think
of this site as my ongoing research platform for putting new ideas and technologies up.

This research is just starting to get under way. I have a strong background in
signal processing that I gained in grad school at Tech. My goal was to implement
a platform for audio signal capture so I could work on interesting data analysis
problems. Working with stock data does really interest me as not having control
of the data collection is a huge hinderance to doing really interesting things.
So far the hardware portion of this has been quite a bear so we will have to see
how far this goes.

For a while now I have been interesting in gaining more information on working
software systems. This information could be useful for bug detection, security,
or more for use in more advanced formal methods. A while back I wrote some
code to parse logs of many different system. One of the hardest parts of this
problem is how to deal with the unstructured portion of portions of a log.
For the mean time I have put this project on the back burner but would like
to pick it back up again.

In grad school I had two specializations. The first was networking and the second
signal processing. Networking was my stronger focus at first but working in the DSP
group I was determined to make algorithms that could be game changing.
I spent many years collecting data, running the data through simulations,
and doing analysis of my algorithms. The recent development of data sceince as a highly
desired profession sparked my interest in refreshing my data skills. In addition
to reading books, I have taken a decent amount of online classes and short courses.
Working at Medlytix I was able to do a lot of work on data processing pipelines for batch processes.
Maybe all of this will lead to something great, but for the time being I plan on trying
to keep my algorithm skills up to date.

When I first started working in the the signal processing lab my professor was interested
in the streaming of 3D meshes since that was what his PhD was on. The first task I was instructed
to do was to network together a very rough virtual environment prototype.
This project led to me researching the networking done in gaming and virtual environments.
Most of the previous research on the topic was done on a technique called dead reckoning.
I spent many years researching this and experimenting with algorithms for the transmitter
and the receiver to lessen the effects of the network on the end user experience.
My research was more specifically done on human hand movement which is different than avatar
movement in a typical first person shooter. I collected data, wrote algorithms and simulations, and eventually a few research papers.
I always thought this problem was a hard one as the current techniques are good but more
advanced techniques are very difficult. My only consolidation to this was in the passing on of
my 100 page proposal to a friend working on the networking at the gaming startup Artillery.

In addition to the more algorithm oriented research on network gaming I did various research projects where I wrote networking software. One interesting project was the networking of a sort of treasure hunt game done in the real world with mobile phones. At this point mobile phone development was much more rudimentary that it is now and phone API’s were not close to being as rich. In spite of this we put together a rough prototype which was pretty cool. I learned a lot of things on the practical aspects of game networking and mobile phones. Using the GPS and network on those old phones drained the battery like a college frat boy drains a beer. Between the old phones, the huge battery drain, and the horrible network coverage I would say I learned the most in how the real world often kills good research ideas. If I ever have any free time I would love to reimplement something similar with todays hardware. I did some other research and built some prototypes streaming other media forms, but I think the ideas were less novel and interesting.

One of the coolest research projects I worked on was with Motorola labs. Once again I think we were at the forefront of the idea of a tv linked to a second screen. No one had done anything in the literature at the time and I was teamed up with a researcher at Motorola labs who wasn’t drinking as much of the corporate Kool-Aid as the typical corporate employee. I built a Ruby on Rails application that linked interesting web sites to the current video on the tv. Our prototype was very basic and the idea has since been done, but at the time I thought it was novel. In the course of this project I learned a lot about OCAP as well which led me to later work. Unfortunately the the cable world at that timed cared more for OCAP than cool novel tv centric application ideas. The closed nature of the cable tv system has really soured me on anything interesting happening in this field.