New Job

28 August 2013
Today I formally accepted a job offer. I will not mention the company name, but I will reveal that the job is as a Python developer, and although the role is within Europe it is not within Britain. This goes against my intention of securing a job within New Zealand, but given the circumstances I decided I was better off cutting my losses and building new foundations. It at least satisfies my desire not to live under the increasingly authoritarian tendencies of whichever failed set of used car salesmen happen to inhabit Westminster, and I have much more faith in the inflation-proofing of the Euro than the Pound Sterling.

Securing the job

Given my experience of how long job applications take to filter though, my original intention was to line up job interviews for when I was due to return to the UK, as pretty much every plan I had involved spending at least some time back there. I had only just finished creating a CV that was suited to the British job-market rather than the New Zealand one, and my new company happened to pop up on my radar. As it happened, it ended up being one of only two European jobs I applied for.

I am very conservative in what is acceptable to claim on a CV, and this view extends to job applications. I suspect this honesty has cost me in the past, but I work on the basis that a job obtained on the basis of complete bullshit is likely to end badly one way or another. Having said that, I think what I stated about my Python experience to secure my new job was close to the boundary of what is acceptable, with the line I took during my interview being that I used it for prototyping purposes. This is certainly true for the first project I worked on at my previous company, although since then I tended to use it mainly for scripting purposes rather than day-to-day use.

Mercifully the (Skype) interview questions they chose to sample my knowledge of Python with were ones I was able to cope with. Only two areas where I tripped up were Python Decorators and calling of ancestor class constructors. For the former I stated that although I had not used them in Python, I had used them in C# where they alter the run-time environment (actually incorrect - I was thinking of Attributes), and for the latter I gave a valid but archaic method (forgetting that super() is valid Python as well as Java). I suspect I was partly saved by various remarks into Python 2.7 versus Python 3 (and Python in general) that only someone who has used the language in anger would appreciate.

Questions on stuff like iptables and Linux start-up scripts I got through as if they were snacks, but it later became pretty clear that the company was the type that would score very highly on the Joel Test, which is a somewhat stark contrast to my previous company. I was convinced that this lack of proper coordinated use of both tools and defined processes would lead to my rejection, but as-is I had an offer in my e-mail inbox even before I got back from the pub (the interview ended circa 22:30 NZ time).

Dirt on previous job

Although I have in the past hinted at dissatisfaction with my previous company, I have for obvious reasons (i.e. job references) decided not to burn my bridges, but looking back I see how close to my ideal job my time there actually was. In fact the responsibilities I had were vastly in excess of my pay grade, but that came with the perk that I experienced stuff within 18 months that most people would have had to wait 3-5 years for. Another benefit of the freedom, albeit it had limits, was being able to choose implementation approaches that had as much to do with building up my own experience as getting things done. Using Python was one of them.

The fundamental problem the company had was it being a small enterprise operating in an exceptionally unfavourable economic environment. Being the credit crunch, it was small fry like my old company that were left to fend for themselves, which was made all the worse by up-front costs coupled with payment-on-delivery. And don't even mention various leeches like the local council who wanted stuff like business rates to be paid regardless of means. Such companies have to live dangerously, and for people like me way down the food chain that means having a form of planning that borders on gambling. Eventually I could feel my motivation starting to crack, as I was foreseeing ever more fire-fighting from having to hammer the existing business logic into scenarios it was not intended for. The company eventually recognised that a major code refactoring was needed, but by that point I had mentally given up.

..and the escape

Around the same time I was coming to the conclusion that I needed to get away from Bristol, as I felt like a ghost in the place. This is a common occurrence with people who study then work in the same city without a break. I was living comfortably, yet felt my life was stagnant, and that if I did not have a major shake-up I would simply see years fly past with no significant change. I did have 1 or 2 punts at securing a same-nett-income job in London, but came to the conclusion that sticking to the concept of not giving notice for an existing job before securing a new one was a non-starter given my three-month notice period. The only way anything was going to get done was to trade everything in.

the overseas factor

I had many overseas friends from university days, and from this I also felt that I should try experiencing for myself what they had gone through. Due to factors related to age, it was clear that if I was to do such a thing, it was a now-or-never thing. Also on the push side, it meant a real chance to stop caring about all the bullshit that the UK authorities were insistent in ramming down the throats of Brits, which is something that also influenced my decision to avoid the UK in taking up a European job.

Still, any fundamental faults?

All-in, the only area where the company really fell over was the lack of through use case analysis, or in other words a concrete idea of what/where/how the products were to be used. Given that the clients were not the easiest to deal with, this is perhaps understandable, but trying to think up the logical structure of future business logic is tough when you have only a sketchy idea of where it fits into the grand scheme of things. It straddles that line between the adrenaline hit where you learn a lot, and burnout.

What about going back?

The company itself I wouldn't mind going back to, particularly as it is unusually prolific in what technologies it uses, but after all I have gone through I doubt I would want to go back to Bristol itself. Ideally I wouldn't mind doing some contract work, but in practice I know it is a non-starter, not least because of contractual non-complete requirements. As things turned out, this is something I should have properly explored before leaving, given how much spare time I ended up having.

Finally, any regrets?

The hands-off nature meant that some of the (perhaps too frequent) tangential mini-projects I did were probably pushing the bounds of acceptability, but had I stayed this would have likely continued with a lot of the new technology designs I had roughed out on paper over the years. In this sense it does feel like unfinished business. I put a lot of effort into leaving behind a well documented and consistent code-base, but the last major module I integrated was a bit of a rush and hence had quite a few hammer marks left on it.