At ChampionChip Minnesota I hold the title of head software engineer, as well as being a race timer. My work consists of custom software development, managing and architecting of IT infrastructure, and working with sporting event clients to provide timing and results reporting services. The majority of my software development work has focused on race result reporting - live video feeds of race results, web based live runner tracking, text messaging and email runner tracking, downloadable finisher certificates, and a custom server to interface with third party timing software and store times in a shared database for retrieval by other programs. Some pictures and working examples of my projects can be found below:
The summer of 2007 I was an intern in the server administration group at Andersen Windows. I got hands on experience with all aspects of server administration, and was in charge of two projects - a server audit, and installation of HP SIM, a hardware monitoring and alerting application. My final presentation which I gave to project managers and Andersen executives can be found here: PPT PDF
I have been interested in photography for a number of years, and pursue it as a hobby, as well as professionally. working for local theater companies (Richfield High School, Youth Performance Company) and a national sporting events photography company (Action Sports International).
My current interests are in night photography which often involves long exposures of times from minutes to hours of subjects such as cityscapes, infrastructure, bridges and buildings.
In the first semester of my graduate studies I was involved in a group research project associated with a robotics class. Our group researched real time search and maze solving algorithms, and implemented and tested a solution in a Player/Stage simulation and on a Pioneer II Robot. Our final paper can be viewed here and You-Tube videos of our trials can be found here.
In my undergraduate studies I was involved in a research project with Professor Abhishek Chandra and one of his graduate students which attempted to convert a software system used in industry from a static distribution of parallel tasks to available workstations to a dynamic system of assigning tasks based on factors such as workstation availability, reliability, processing capability, as well as task dependancies and deadlines. Some previous work and related papers can be found here:
RIDGE: Combining Reliability and Performance in Open Grid Platforms
Reputation-Based Scheduling on Unreliable Distributed Infrastructures
Result Verification and Trust-based Scheduling in Open Peer-to-Peer Cycle Sharing Systems
For my Artificial Intelligence I class, I did research on applying an intelligent agent to the task of retrieving and presenting useful information from a limited domain - in this case finding time sensitive information from class websites. My final paper can be viewed here.
I participated in the 2006 Army High Performance Computing Research Center (AHPCRC) Summer Institute. In conjunction with a staff scientist in Chemistry, Dr. Francis Hill, and another student, Kevin Robinson, we studied the hydrolysis of MTBE - a once common fuel additive, and how molecule placement affects this hydrolysis. We ran numerous simulations using state of the art chemistry modeling software and the center's Cray supercomputers. The problem of finding a more efficient way to break down MTBE is of significance to the Army, as a number of fueling sites have been contaminated with the compound which is a known carcinogen, and cleanup is a very costly operation at present. My final presentation is posted on the AHPCRC website (www.ahpcrc.org) which may be unavailable at the moment.
I have been researching home automation systems for the past 3 years. I had hoped to build a "home-brew" system, wired over Cat5, using solid state relays and a parallel port to control electronic devices. Unfortunately, the size of SSRs prohibited their use in replacing light switches, and outfitting light switches and outlets with Cat5 would be very difficult to do except while a house is being built. I instead settled on using off the shelf X10 devices, and writing software to communicate with them via the open source Java X10 Project, with a few modifications I have made for additional logging. Currently I have a web interface to control every X10 device in my house, as well as software support I have written allowing for more complex macros then implemented by standard X10 devices. I have installed electronic door locks which I can remotely control, and am in the process of adding an email/sms interface to my system, so that I can remotely grant access to the house or execute other commands via an email or text message. I also intend to further integrate my home automation software with my ZoneMinder based security camera monitoring system to provide services such as locking or unlocking doors and toggling lights based on received video events.
I developed my AOL Instant Messenger bot in order to ssh into my desktop computer when it was on an unreliable network, where I could not open ports in the firewall. Because AIM communicates through an external server, I am able to contact the bot, which then causes my desktop to ssh into a public server and forward the desktops ssh port. Then I can connect to this remote server to the forwarded port, in able to access my desktop, despite the fact that it has no publicly accessible ports. I used the open source JAIMBot project to handle connections and messages to the AIM server.
I developed my web monitor program when I was moving to a new house to monitor the websites craigslist.org and twincitiesfreemarket.org. I was looking for cheap or free furniture, such as a couch, entertainment center, and chairs. This program checks the two websites for new postings which contain any of a number of keywords at a set interval. It then sends all registered email addresses a description of the item, and sets the reply-to address to the poster - so it is easy to quickly contact them.
I developed a video program so that I could precisely align a video on a computer monitor. I designed this so that videos played on my homemade video projector would be properly aligned with the screen, without the imprecise manual adjustments required by common video players. Unfortunately I broke the LCD in my projector moving between apartments, and later sat on and broke the replacement one I ordered. I have not yet recovered from the financial and emotional loss. The projector is currently non-functional.