Wrapping up a contract

This is my last week at my current employer. I’ve been spending most of my time updating the Wiki, doing some last minute branding changes, commenting code and general housekeeping.

The project I’ve been working on for the last 18 months was called “Automation of Movements” – nicknamed to AoM. I came across the little gem that Dave posted to the project Wiki very early in the development cycle.

The AoM Team

Ten years ago, a crack IT-commando unit was sent to prison by a static code analyser for a bug they didn’t create. These men promptly escaped from a Triple-DES security stockade to the Adelaide underground. Today, still wanted by the government/higher education and private sectors, they survive as developers of fortune. If you have a software problem, if no one else can help, and if you can find them, maybe you can hire… The AoM-Team.

Gold Dave, pure gold.

New Opportunities

I’ve lived and worked in Adelaide for my entire professional career. I’m lucky enough never to have been without interesting work to do. In fact I look back on some of the positions that I’ve had and I feel very lucky. There is no doubt within my mind that the Adelaide job market has been very kind to me over the years.

However, I feel that maybe the time has finally come that I need to look further afield to make the next progression in my career path.

With my current contract coming to the end its been time to think about what may lie ahead. This contract lasted 18 months and all the feedback we’ve had (dev team, business stakeholders and end users) has indicated that the project was a resounding success. I can vouch for the fact that this unanimous approval is more unusual than common and hence makes the feedback even more rewarding.

Something else that I can take away from this project is that I thoroughly enjoy working with a team of high calibre developers. It would be true to say that I have learnt a lot from them over the course of this project. When the team was originally formed I had some concerns about how effectively we could work together given that the team structure was so “top heavy”. We had four guys that would normally have held lead developer/architect positions and only two “juniors”. It turned out that my fears were unfounded and we managed to work very well together – each of us seemingly effortlessly taking charge of one component of the project and managing the resource pool of juniors among us. There were plenty of constructive discussions too. Almost every architectural decision was challenged, which led not just to a more robust product but also enabled a great deal of knowledge sharing.

So was it a perfectly executed project? Of course not. In hind-sight we still made plenty of mistakes and a number of compromises – but then again that’s probably a very healthy sign. With only 4 months to roll out version 1 of the product we couldn’t afford the luxury of too much prototyping, nor could we procrastinate on decisions that had to be made. Make an informed choice – move on.

Given the outcome of my current role its clear to me that I need to be looking for the next new challenge that’s going to progress my development. So I need to consider what that role should include right?

  • Surround myself with great developers
  • Look for an inspiring leadership team
  • Work for a software company – everyone’s mileage (kilometreage?) will vary on this one, but my experience is that a software company treats their developers well – they are the “talent”, in most other businesses they are sometimes considered just an overhead.
  • The work is challenging – almost left this one off because its just so obvious – why would anyone want to work on something that is easy – what would keep you coming to work?
  • It pays well. Sounds evil right? Well sorry but I’m a realist – if I had unlimited funds I’d write free software for a living because that’s what I love doing. Unfortunately my funds are most definitely limited.

Hmm… reading this back its probably the most philosophical blog post I’ve written to date. Not sure if its simply me getting older, or it has something to do with me writing this 11 km above sea level whilst travelling to another continent. And no it’s not a holiday – its a job interview.

Lego Mindstorms NXT 2.0

Unlike Andrew Coates I have a legitimate reason for buying a Lego Mindstorms NXT 2.0 Robotics kit. I have a young son who’s very keen on Lego and has been building his own robots out of cardboard and Sellotape for the last three months.

I must admit that I had expected to be building and programming the first few robots myself whilst my son got the hang of it all. However, that was not the case.

Here’s the robot that is currently built with our kit.


Not very impressive I hear you say? Well take the following into consideration:

  1. It was built in just over 1 hour with no instructions – including the programming

  2. It can crawl quite effectively – moving forward and backward with no wheels

  3. It is programmed to stop when it nears a wall (using Ultrasonic sensor)

  4. It has two touch sensors that operate the linked fan as programmed with two speed settings

  5. I wasn’t involved at all

It is a real testament to the Mindstorms kit that a child who has yet to learn multiplication at school (several years under the kits “official” minimum age) could put all this together himself. The bundled software for programming the robot really is that easy to use.

My only involvement was to write a simple Window Mobile application that could be used to control the robot. This is done via an exposed Direct Command API supported by the NXT 2.0 block’s Bluetooth interface.

This kit is already a winner in our house. There’s even a good blog for it here.