Tag Archives: Jobs

It’s always about the money

I was asked an interesting question today regarding which job should someone go for. The options in question were for a “boring” product, but with a good team, and for an “interesting” product, but for rubbish pay and the possibility of a full time job after a period of a few months.

As far as I’m concerned the above scenario really only has one choice, but in the conversation that followed it was pointed out that there are a few students out there who are unsure what path they should take when it comes to accepting Software Engineering job offers out of university. What I’m providing here is an expanded version of the advice I gave today. Caveat Emptor and all that.

Lets look at product first. I’ve worked on a product that, in its original incarnation, was a putrid, rotting corpse that sucked the very life from your soul. This was due to the hideous way it had been barfed into existence and the ridiculous choices that had been made in terms of architecture, language and structure. It quite literally broke two consultants while we were doing the analysis.

That exact same product, rewritten, re-architected and generally done properly was actually quite nice to work on. As a product it was as boring as hell, but as a job I had more fun there than I did on my next job which was, in theory at least, a much more “interesting” product.

As far as product (or service, or whatever you’re being employed to program) goes you really only care if it’s something sensible that’s going to continue making the company money (and therefore allow you to continue being paid), and that it doesn’t do something that you find morally reprehensible. You may also find, as I did when working in London, that your morals become somewhat malleable as the salaries increase.

So product is much less important the technology. Make sure it’s the technology you want to be working with. If the code has been around for any length of time, it’s going to be a steaming pile of crap. Deal with it. If it’s new code you’ll be involved in turning the nice new codebase into the steaming pile of crap that it’s destined to be. Such is the nature of most development houses. Either way you’ll have some days where you get to write little gems of code that make you proud, and others where you’re having to bludgeon some hack into the code just to make the damn thing work. May as well be swearing at a technology stack that you enjoy and doesn’t fight you back.

Team is also very important. You need to work with these people day in, day out. If the team is comprised of people that cause violent thoughts due to their behaviour and nature then walk away. In generally moving jobs every 2 years in IT isn’t going to raise any eyebrows, but can you really tolerate these people for that length of time?

So you’ve narrowed it down to a shortlist of things you are happy to work on, using technology you want to use, with people who won’t cause you to go postal. I’m going to assume you’ve already weeded out places that are too far away, or are otherwise impractical. You’re now left with the final thing: money.

Pro tip: up to a certain value, it’s always about the money.

If you’re stuck, go with the company that will pay you more. Money may not buy you happiness, but it sure as hell helps mitigate a lot of stress. Not having to worry about your next pay check, being able to afford treats, holidays away, shiny new kit, all these things can make life much easier.

Now you’ve made your choice, if you find yourself kind of wishing you hadn’t picked that place, strike it from the shortlist, start again.

Oh, and as an aside, anything that you’ve been promised is worthless unless you’ve got it in writing. Something in writing trumps vague verbal promises every single time.

Job Specs and CVs

Job specs annoy me. There seems to be a standard formula which contains a number of canned phrases that are absolutely pointless to certain job types; especially those I’d be applying for, or, as I am currently, advertising for. These are some snippets I’ve pulled from a similar job advert on the internet:

“Strong Analytical capabilities”

It’s a java development role. Strong analytical capabilities should be a given. I could understand it if you were advertising for a role that paid below £20K, but there are certain things that you can start assuming one you get into the realms of higher paying jobs.

“A thorough attention to detail”

I’m actually hard pressed to think of an employer who wouldn’t want that.

“Presentable and organized” [sic]

Coming, as that did, after “A thorough attention to detail” you have to love the irony in the use of the American spelling in a British job advertisement.

This isn’t just a one off either. Most job adverts are like this, and when they’ve dispensed with the banal and pointless buzzwords there comes the smorgasbord of required skills. This is usually just a list of all the technology in use without proper consideration to if it’s actually required. It also tends to bear no relation to the salary on offer and, worse still, adverts these days have the wonderfully vague £competitive or £negotiable. In effect, most job specs say the following:

“Wanted, one development guru willing to work on junior wages. Social skills desirable.”

Norwich is not a hotbed of Java shops, so it’s understandably light on Java developers. Restricting myself with a “standard” job spec would just further limit my options. Instead, lets focus on what I really want, in the order I want it: a developer who in an A player, who has a voracious appetite for learning about new things, and who has good working knowledge of Java. That’s it, everything else is a bonus because with that base they can learn everything they need quickly, and lets face it, it’s rare that you can just walk into a new job without having to learn something.

WebLogic? We use it, but I’ve got step by step instructions on how to use that so even a non technical person should be able to cope with the amount of WebLogic knowledge that’s required. Oracle? Provided you can string together some SQL for at least one database you’ll probably be fine. JSPs, Servlets, Hibernate, Spring, JUnit, TDD, BDD, Ant, Maven, Eclipse? Yes, all lovely to have, and the more experience the better, but I don’t want to prevent an otherwise excellent developer from applying just because I’ve done the shotgun approach to skills. I’ll list them, but just so you can make the bits of your CV that include the relevant skills shine.

You’ll also note I’ve not listed how many years experience with Java I want. I’ve never thought was productive. I’ve known people with just a few months of experience in a language produce far superior code to people with several years experience. The last person I hired was technically an ActionScript developer with some Java knowledge. They were an excellent find. I’d rather take an enthusiastic, bright and eager junior developer who will grow over the years than an experienced developer who is now resting on their laurels. This is software development; evolve or die.

Degree? I don’t have one. They’re useful when getting into the job market, but once you’ve got a few years experience under your belt they become less of an issue. Mandating one is just another way of artificially limiting the available pool of candidates for no good reason.

This doesn’t mean I’ll take anyone though. Your CV has to convince me you’re an A player. It has to tell me you’ve got the appetite for learning that I want. It needs to show me that you’ll grow in your role. Sadly in todays world of keyword matching not many CVs do that.