I have considerable experience in software development. I began programming using Visual Basic, then moved to VB.NET, but now work primarily with C#. I've also used both C++ and Java for various projects. The projects listed below are not a comprehensive list of projects I've worked on, but are designed to showcase different areas of software development in which I have experience.

The GTGK welcome screen
Grand Theft Go Kart
Grand Theft Go Kart is a Mario Kart-like racing game where you race your golf cart against other players around a course.
This project was created for a Software Development class at Harvey Mudd College in fall 2004. Working with two other students, I helped plan, design, code, and test the game over a five week period. All our work and planning was self-directed.

Driving around the course
The game is written in C#, using OpenGL for the graphics. The game uses a split-screen display, includes music and sound effects, contains multiple race courses, allows you to customize your golf cart, includes an AI driver, and uses a simplified, two-dimensional physics engine. It also features (slightly buggy) network play.
My responsibilities primarily consisted of incorporating OpenGL into a C# Windows Forms application, implementing the game controls, creating and designing the class structure and hierarchy, and implementing network support, as well as countless smaller tasks.
Download the game (requires .NET Framework 1.1)
Download the game and the source code

The anti-virus software check on the NetReg client
NetReg
NetReg is a program designed as a front-end to a campus network registration systems. Running on a client computer, NetReg automatically downloads updated settings from a server, and then performs various checks on the client machine. It ensures that anti-virus software is installed and up-to-date and that the most recent Windows Updates and service packs have been installed. If either of these conditions is not met, it offers remedies. Once a client machine meets these conditions, the user enters their username and password, which are sent to the network registration server.
This program was developed while I was working for Pomona College Information Technology Services. In order to better ensure the stability of the campus dormitory network, students were required to run NetReg on their computers before being allowed access to the network. NetReg also required users to register their machine, allowing us to match MAC addresses to usernames, and thereby allowing us to contact the person in the event of network problems.

The entire NetReg program was designed using a wizard interface. Here, the user enters their username and password, which are then sent to the server.
I collaborated with another student employee on the NetReg system. During the spring of 2004, I created the initial NetReg program, including the basic application framework, the self-update system, checks for service packs and Windows Updates, and basic anti-virus checks. The following summer, my collaborator performed most of the testing, as well as adding support for additional anti-virus software and several minor tweaks. The system was deployed (and required for all students) beginning August 2004.
NetReg was developed using C#, and was designed to integrate with a pre-existing network registration server and system. It takes advantage of a wide range of features in the .NET framework, such as interacting with a web server and querying Windows services.
Global Windows Hooks in C#
Global system hooks allow Windows developers to intercept system events and process messages sent to other windows. Although global system hooks are a powerful feature, it is impossible to implement them completely from managed .NET applications, since global system hooks must be processed from a DLL and neither C# nor VB.NET are capable of generating standard Windows DLLs.

A demonstration application that adds a transparency menu to all windows.
This application describes a workaround to this shortcoming. A simple C++ DLL is used to handle the actual hooking mechanism. This DLL, upon receiving a hook event, sends a custom message to a managed code application, thus allowing a C# program to process a global system hook.
This solution contains the DLL project, as well as two demonstration programs. One of the demo apps uses global system hooks to add a transparency menu to every top-level window and to new windows as they are created. The menu is created by the C# application, and the menu events are processed, via global system hooks, by the C# program. The second demo app demonstrates CBT and shell hooks, printing to a listbox whenever a window is created, destroyed, or activated.
I created this project entirely on my own, during some of my free time in Burkina Faso. The solution was created with Visual Studio .NET 2003. It demonstrates my proficiency with C#, as well as a working knowledge of C++. It also exhibits a thorough understanding of the Windows API, and how to implement API procedures from managed code. Most importantly, it shows an ability to find a creative solution to a problem that has continually plagued C# programmers.
For more on this project, or to download the code, view the complete description at codeproject.com.

The main menu in the database
Camper Registration Database
Before the summer of 2004, I designed a new registration database for a summer camp in Wisconsin where I'd worked the previous summer (and worked at again the following summer). The registration database was the central source for all camper information. In addition to basic data (age, address, etc.), it also stored parental and emergency contact information, necessary health and medical information, billing and account information, and lesson and activity information. The database provided a large array or reports, such as cabin unit rosters for counselors, health forms for the camp nurse, activity rosters, session certificates, mailing labels, and waterfront buddy board labels. The database also generated annual reports, such as various registration fee and financial information, as well as marketing reports breaking down campers by parish. These reports notably increased the camp's recovery rate on campers fees, as well as assisting in recruitment efforts.

The basic camper information form
The database was written using Microsoft Access and Visual Basic for Applications. I developed the entire program from scratch, basing it upon the old registration system, and incorporating several new features requested by the camp director.