I have a great job right now that I like. Better still it comes after spending 10 (mostly rewarding) years in the IT contracting world. In fact, it’s the first time since I graduated university that I would (hand on my heart) honestly recommend my current employer (or previous employer) to anyone.
An old university friend looked me up on Friends Reunited – a British alumni website – the email I sent him said :
>>What are you doing these days?
>>What about the gap - Uni to now?
Uni to now? Hmmmm. I've left a trail of destruction across the south coast of England before being forced to leave the country in shame...
... Kidding (sort of) ...
Right after University, I worked for an electronic warfare company writing Radar jamming, deception and training systems. Official secrets act is still in force, not that I could tell you anything all that secure anyhow, but that company gave me a great start in the Software Engineering trade. A management buy-out meant that the company I worked for no longer exists, as such, and another started doing the same thing, just not under the parent it had before. Dead company count of 1, so far.
I made a career move from 16 to 32 bits, from radar jamming and deception to computer network management, from C to C++ and then to Java. It was also a jump from an established company to a start-up ... I was one of many "rats leaving a sinking ship" in 1998 when I moved to the USA. The start-up officially folded a couple of months after we arrived here. 2-for-2 on the dead companies. See what I mean about a trail of destruction?
The move to the USA brought the 2 of us to St Louis, Missouri. I took the chance to leap into consultancy and have been working with COMSYS, a nationwide IT Consultancy for nearly 4 years so far.
The move to the USA back in 1998 was the result of being annoyed with my boss and making a single phonecall. I wasnt job-hunting at that point in time, suffice it to say “it’s a God thing”. My career isnt in my own hands, I am not in control of my own life. Control rests in the hands of someone who can see “the big picture” wayyyyy better than I can! When He tells me it’s time to move on, I will.
There are some things that constitute an "ideal" job. For that matter, they apply to an ideal client while employed by a good consulting firm. In no particular order
- Less stick and more carrot – somewhere that rewards good quality work and uses positive re-enforcement rather than simply beating a team with a big stick to make them do more
- Collective code ownership – the team as a whole ‘owns’ the codebase rather than having petty fiefdoms of arbitrary control over sections, with the associated squabbles over who fixes what
- Commitment to quality and automated testing – preferably a ‘test first’ development methodology
- Emphasis on customer communication – if possible, drawing the customer into the development process, having them onsite and available to turn questions around in the shortest possible time thereby keeping developers closer to the requirements
- Communal development environment – developers in a communal area working together, preferably paired 2 developers to a computer, to write the software
- Very short meetings – need I say more?
- KISS – Not the rock band, just a commitment to keep the software simple, applying guidelines such as
- "Once, and only once" (remove all duplication)
- "Refactor mercilessly" (continual improvement of all code that is encountered in the system)
- "YAGNI" (you aint gonna need it – avoid over-engineering the solution)
- "The simplest thing that could possibly work" (true KISS in action)
If you’re still interested, take a look at my resume.