Why I love pet projects
Over the years I’ve had loads of pet projects, no matter what I was working on full time. All of them have died at this point (besides the one I’m currently working on), but I don’t regret the time spent on any of them.
I think I’ve jumped a bit ahead of myself. When talking about pet projects, we should first define a pet projects. Working full time as an engineer and developing something you hope to turn into startup/business in some time is not a pet project from my point of view. Pet project is something you take on just for fun, for the kick you get out of creating something cool. This doesn’t mean your pet project can’t make any money, many do. Nor does it mean your pet project can’t grow into startup or a product.
For example, my game studios first product, Number Game (Number Game Classic on iOS), started as a pet project. A friend of mine kept bugging me to make an Android version of number game for so long that I finally gave in and built the prototype. She was happy and we only had to polish it to be a product later on.
Probably the most common reason to start a pet project is to learn a new technology. I’ve done it on several occasions. Back in the days when Ajax still stood for the dishwashing liquid I built a text-based multiplayer RPG just to play around with the concept. Some people form IRC channel I used to have back then actually spent over 24 hours playing it, even though the game was rather pointless. I never actually released the project, but it would have generated some money for sure. Just not enough to be worth the trouble I guessed.
At last Garage48 in Tallinn I was in a team that built an application with HTML5 and Node.js. HTML5 is my playground, but I had never used Node.js before. Few days ago I found myself with some free time and decided to build my first multiplayer HTML5 game (remake of classical paper-soccer) with Nodejs. Again, it’s an awesome learning experience and I know me and my friends will have a blast playing it. If it works out fine I might actually publish it. Just to make sure, I even registred paper-soccer.com and paperhockey.com :).
Screenshot of the prototype
Another reason to start a pet project is to scratch a small and very specific itch. For example, one community I manage has a web-based chat room. It doesn’t play that well with some Android browsers (yeah, I know, this blog does not have a mobile optimized theme. It will get one soon, being a dick about that won’t change anything) and had a growing Android user base. So I had to create a native application for the chat with about 20 loyal users. That was my first of many to come Android applications. Making people happy while doing what you like is reason enough to take on a new project.
Growing ones digital mojo or giving back to the community (same thing, different name) with open source project is one of the initiatives I’m yet to try. But I will probably do it soon in one of its the primitive forms of WordPress plugin. I just need a plugin I haven’t stumbled upon yet and don’t mind sharing it if I ever happen to actually write it.
At opening paragraph I mentioned that all my pet projects besides the multiplayer paper-soccer are dead. That’s not completely correct though. At December last year I wrote a series of HTML5 game development tutorials mostly for inner circle, which I’m hoping to publish here once I find time to review them. Unlike most other training materials/tutorials I’ve produced over the years these were written with intent to be published.
Pet projects are a fun way to develop yourself as a programmer and help others. They can also take your mind off what you are currently working on. After spending 10 hours a day building a social network for dogs using WordPress (That’s not me being sarcastic, I actually once had to build such a thing. Trust me, it was even less fun than it sounds), switching to cool project is more relieving than hot shower after jogging in cold rain.