One year ago, I was fresh out of grad school having secured a Master’s in Computer Science. A Master’s program certainly made me delusional as far as the job prospects were concerned. I strongly believed that seeing my credentials as someone who could do research getting a job would be a piece of cake. This was towards the end of 2009, when the effects of the recession were still in play. I ended up working for startup x doing uninspiring work.
Mid 2010 as I was stumbling, for those unfamiliar perusing http://stumbleupon.com. I came across http://preyproject.com. It was something that immediately caught my attention even though the webpage was in Spanish. Running it through google translate I quickly realized this was something I cared about, A geo-tracking software for Laptop’s, mac’s and cell phones. Discarding all my inhibitions I mailed the developers Tom and Carlos asking if they needed any help. They were kind enough to respond positively and I found myself involved in a Open Source Project based out of Chile.During the course of my interaction with Carlos, I became acquainted with git, Blackberry app development and most of all rekindled the spark of software development in me which was missing since high school.
I moved to California and now write extremely inspiring server side enterprise software. Open Source Software is an idea that cannot be ignored. My experience with PreyProject helped me deliver at BMC by engaging with the Open source Community which is one of my responsibilities in addition to building cool stuff I can’t write about. At BMC I am still learning the various facets of Software Development being surrounded by amazing Developers and working in an Agile team.
Prey took a back seat but I was determined to deliver on that front too. Last weekend I pushed onto github the “Lock” module for the Blackberry version of Prey. The Lock module is essentially a global UI that is triggered onto a mobile screen by a push from the server side, which disables all actions on the blackberry and can only be unlocked using a passphrase set at the serverside. Furthermore, the cool thing is that since Prey runs as a service on the device turning it off and then on simply means the service starts again with the device, and if the lock attribute is set at the server side the Lock will be in play again!
Today I ported the code with the Lock addition on my Blackberry Curve. After testing functionality and seeing it work, I was filled with Pride and Joy. Pride that I had created something of value, Joy that I had created something beautiful and that I had created something that I really wanted to do. I created a feature which may well be used in millions of devices. But even if it isn’t that wouldnt diminish my joy one bit.
One may well say there is no financial gain out of this exercise. I was reading Pete Sampras’s autobiography the other night and he said he must’ve hit a tennis ball at least a million times before he ever set foot on court in his first major match. If you have read Malcolm Gladwell’s Outliers his hypothesis is to gain expertise in a field One must spend at least 10000 hours engaged in tasks of higher complexity than the previous one. 10 years to become a expert software developer as outlined by Peter Norvig. I might have come late to the party but I sure do intend to be an expert Software Developer with time. Good Software Developers are Craftsmen or Craftswomen and what makes them so good is practice. Open Source development is a very effective way of engaging with the best developers across the globe and creating a meaningful impact by doing something you like to do. Furthermore Open Source software is a unique repository of millions of lines of code open to inspection by anyone. Read code, write code then read some more code.
So stop for a moment, Find a project you like on github or sourceforge. Join a project, Drive a project but most of all remember the time when you were a kid, when anything was possible and create something just for the Joy of it.