This section is dedicated to communicating who I am academically and professionally. Please visit my blog for a more personal look into my life.

By reading this, you will discover who I think I am as a programmer.

Why do I program?

Different people program for different reasons. Here are the reasons why I enjoy programming so much.

Design

I have a passion for designing things. Whether it is designing a Popsicle stick bridge, rules for a game, a method for organizing data, or anything in between, I love it. Writing software lets me design. There is nothing I enjoy more than a challenging problem requiring some high level design that has never been done before. It is projects like these that excite me and bring out my creativity.

Organizing

It might not be immediately obvious from looking at my desk cluttered with papers or my hockey equipment lying around the garage drying, but I like to organize. If there is a system that can be improved by reorganizing, I am all over it. One of my most satisfying programming moments was the result of organizing. I built the basic structure of a program and started getting good results. Eventually some cases caused problem, but I quickly fixed those. Over time however, more and more of these erroneous cases popped up and had to be dealt with. As I took care of these, my original structure was no longer able to elegantly handle these changes. Each fix felt more like a ‘hack’and my code began to get ugly. Before too long, it took forever to debug and each “hack” caused multiple other problems. Eventually I became fed up and re factored everything! I redesigned the way that I handled data, I moved methods around, and I made my code clean, elegant, and well organized. Do you know what happened next? Everything worked! One of my favorite things about programming is that reorganizing and cleaning up code is always rewarding. Elegant code is good code.

Details

Details are important and my appreciation, and necessity for it, helps me to program good. For example, that last sentence is grammatically incorrect and it drives me up the wall. ‘Program well!’ Grammar and details are important in programming where a single incorrect character can change the functionality. Programming is a setting where I am allowed to care about every single detail, even if it seems like it does not matter.

Method

I like doing things the right way and feel it is important to determine what the right way is before beginning work. Simple details are important: using objects properly in object oriented programing, separating content from logic and logic from formatting ie MVC, keeping proper scope, using proper indentation. These things are important even if we feel they should just happen automatically or think they don’t really matter. Human brains weren’t made to write thousands of lines of code so we came up with tricks and methods to make it easier to analyze, think about, and design. We should not ignore these.

Human Interaction

The previously listed reasons all have to do with programming specifically, or at least how programming fits my personality. One last thing that I feel is very important is my love for interaction and cooperation. I didn’t play nine years of hockey because it is fast paced, filled with action, or it kept me in shape, although it did all of those things and I enjoyed it. I played hockey for nine years because it was an incredible opportunity to cooperate and work with my teammates. My favorite memory of hockey was the last game of a tournament where we only had four skaters and a goalie (Roller hockey teams generally have 8 skaters so you can have two shifts. Four skaters means no rests). By working together seamlessly, we were able to completely dominate the game and win despite how tired we were. Many of my interests are solo, but that is only because none of my friends can ride a unicycle or juggle clubs. I would much prefer to work with someone else to accomplish goals than to work alone or even compete.

This is why I think that Subversion (version control software) interests me so much. Sure, it allows me to organize all of my homework and my portfolio in a place that will never be lost, but more importantly it is a powerful tool for people to work on something together! It solves many of the problems inherent in group projects!

The games I dream of developing are all games that reward, or even require, cooperation to play well and I can’t wait to build those with other people. There are so many opportunities to create multiplayer games over the internet that have not been explored. If the software I develop doesn’t allow the end-user to somehow experience a connection with someone else in a way that other mediums cannot, then I will have failed.

What is this page for?

If you have made it this far, you know what this page says, but you may be wondering why I wrote it. I enjoy writing and I believe I write decently well. I’m not going to win any awards or write any novels, but I can communicate. One thing that I’ve been told uncountable times as a student, is that communication is one of the most important abilities in the workplace. How can a team work together if they cannot communicate?. I believe I can write well and I want you to know that I can write. This page is one way to accomplish that.

This page also gives people a small insight into why I do what I do and why you might want to hire me. Perhaps you are looking for someone with precisely my personality and interests: someone who is creative and has a desire to work with others to build incredible software that changes how people interact. If it weren’t for this page you might not have realized that.

Professional Goals

What do I want to do? I would like to work in game development. Creating worlds, defining rules, changing rules, changing more rules while playing; these are things I have been doing my entire life, even before I had ever played a computer game. When I was two years old I was already driving my parents crazy changing the rules of boardgames, without telling them of course. I decided to study computer science and learn to program in order to make games. It’s a good thing I ended up loving to program.

This was written sometime during my undergraduate education. The exact date is lost. I’m guessing 2006.