Introducing The Coding Monkey Me.

Ahhh, the inaugural blog post.  Where I have almost no content, just a shameless self-promoting ramble.  Well, here goes…

I’m a 27 year old professional software developer.  I graduated in Computer Science from the University of Canterbury, New Zealand in 2007 and after a short stint looking for “real” work, I began working as a code monkey in mid 2008.

That’s right, I’m only just  4 – barely old enough to be allowed toys that come with a “choking hazard” warning and I have the audacity to be blogging about my exploits as though I know what I’m talking about.  Let me clear that one up for you here and now.  I’m not an expert.  I’m not a prodigy who’s been coding since I was 2 years old.   Much of what I have to say will be total crap, purely my own opinion and should not be associated with my employer in any way shape or form.

I began playing with code when I read a magazine article which explained in excruciating detail (which was lucky, really) how to code up a tic-tac-toe (or naughts and crosses where I come from) game in Delphi.  I was already pre-disposed to computers and being able to bend them to my will sounded like an amazing prospect.  I was right.

I continued to play about with mIRC scripts and the like, but I really hadn’t written a real program (at least not from scratch) until I reached university in 2004.  Programming, it turns out, is hard.

At university I learned to code in Java and C.  Nothing of web technologies and I didn’t pay enough attention to SQL (scraping by with a C+ in the intro course) so I promptly forgot almost everything I learned and had to start from scratch when I needed to use it in anger.  More importantly, I learned enough about design to be able to tell when I was working with pretty code.  I’m also pretty sure I got my “pattern fever” stage over with by the time I finished at Uni.

When I was eventually hired by my current employer, one of the first things I was told was “learn Ruby”.  I was handed the Pickaxe book and largely left to my own devices for a couple of days.  As I continue to blog, you will find out that this was the beginning of a love affair with Ruby.

I was hired as a “Technician” a title which covers all manner of sins.  My primary job was to maintain the custom build scripts (replacement for “Make” on steroids, written in ruby) and the (also custom, written in ruby), for lack of a better term “continuous integration system”.  My other tasks included maintaining the team’s Linux boxes and keeping an eye on making sure the Mainline is un-broken, as well as helping to roll out the development environment to the existing and new developer machines, compiling gcc, etc.  Very occasionally I was thrown some “Donkey Work” to track down where in time a specific bug was introduced.  It was by no means a glamorous position, but it set me in good stead for the years to come.

All the developers on the wider software team (of about 30) knew who I was, associated me with helping them in some way (fixing the mysteries of linux configuration management, explaining why the “continuous integration system” rejected their change and even the odd nugget from some of the stranger parts of the C99 standard.  As far as the developers were concerned, I performed magic. So when I was finally afforded the opportunity to do some C development for the Firmware, there was a whole team, full to the brim of experience who were more than happy to repay some of that help I had given them.

So now is probably a good time to explain Code Monkey.  I feel like I’m not an evolved enough developer to have attained the level of Designer (despite my official title currently being “Design Engineer”).  I’m still doing basic, stupid things, with one of my commit log messages this week containing “Oh right, test, then commit”.  I’m not evolved enough to always do TDD.  I can barely find the will to write unit tests.  Then when I do I’ve been known to think that my unit tests passing mean that my module is integrated properly and will work end to end.

So there it is.  I’m young, I’m under-evolved and they continue to let me near a keyboard!  It’s something I can’t quite get my head around.  Some people think I’m good at what I do (they’ve given me awards and everything!), but every now and then I find myself wanting to go back in time and give myself a good, solid, punch in the face.  What could have possibly possessed you to write such terrible code?  What on god’s green earth made you think that could possibly work?  

So I’m not a Code Monkey because someone hands me their gold-plated designs and tell me “Make It So”, but because this craft is so laughably immature, it’s yet to evolve into a sentient being.  And until that happens, there will be plenty more to blog about.

Advertisements

About Michael Malone
30 Year old web dev, self-confessed Linux lover, Ruby enthusiast, and obsessed with programming. Former embedded C and desktop .NET developer.

3 Responses to Introducing The Coding Monkey Me.

  1. Xeon says:

    Ahhh, the inaugural comment…

    We are all mature on some subjects and immature on the others. Having said that, developers have different methodologies and development styles under which they work the best, some write artistic code with little process overheads under cowboy coding, some write the safest and most compatible code when blueprint design is provided, some achieve the most with close follow-ups under Scrum.

    On Linux and build environment, you have already evolved to a superman.

  2. Pingback: The Third Virtue « A Million Code Monkeys

  3. Pingback: Scrum is boring. « A Million Code Monkeys

Comment on this

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: