New Job Obtained

Yesterday I started my new job. It all came about very quickly in the end: it’s not even a month since I finished at SAHSU. And I didn’t really start hunting in earnest until then. In fact I had two offers to choose from, which was nice. I turned down Capgemini, a massive consultancy, in the hope that the smaller one, whose offer I did accept, would feel more comfortable, more human-scale.

Though they do have some massive clients.

You’ll note that I’m not naming the company. That’s because the staff handbook makes it quite clear that they don’t want us to do so. I guess they don’t want the company name linked with arbitrary random sites on the web. I mean, we all know I’d be fine, but you never know what someone might say.

Here’s how good they are though: in a company full of PCs, when I said I preferred to work on a Mac, they said, “No problem,” and ordered one in for me. I’ve just been setting it up today. 15-inch MacBook Pro, 2018 model. Lovely. Much like my own one, though mine’s a 2017 model and Space Grey, rather than silver.

Not much more to report yet. I’m looking forward to getting my teeth into some projects.

Imperial Adventures

Just over a month ago I posted a brief note about job news, saying that more details would be forthcoming. I was, as I said then, just waiting for some paperwork.

It took longer than I expected to get that paperwork sorted out, but I received and returned the contract yesterday afternoon. On Monday I start work at the Small Area Health Statistics Unit (SAHSU), part of the School of Epidemiology and Biostatistics in the Faculty of Medicine at Imperial College.

That’s quite a mouthful, but in short I’ll be working on programming something called the The Rapid Inquiry Facility (RIF), which is an open-source tool for studying health statistics.

I’m neither a medical researcher nor a statistician, but I am a programmer (or a software engineer, if you want to be fancy). Our job is to understand the needs of someone — usually referred to as “the business,” but I’m guessing that will be different in my new job — and translate those needs into actions in software. That basic definition doesn’t change according to the problem domain. Whether it’s sending payments from one bank to another, checking a person’s right to work on a government database, or doing something with statistical data about health issues, the programmer’s job is to understand what the user needs and make things happen on a screen.

The big difference for me, I think, will be that in this new role I’ll have the chance to contribute to doing something good in the world. As I said at my interview, I’ve mainly worked in financial software, and while, sure, people need banks, it wasn’t the most socially-usefully thing. The last half-year working at the Home Office had some value, but I was a tiny cog in a huge machine.

At Imperial I’ll be able to feel that I’m actually contributing something useful to society, as well as doing what should be really interesting work.

Oh, and: I’ll be back in Paddington, which I know from my Misys days, and it’s a much shorter commute than to Croydon.

New Job

As you may know, I’ve been between contracts lately. Had quite a lot of interest from my CV, but not been so lucky with the tests and interviews.

Yesterday at about 10am a recruiter called me. Today at just after 5pm I was offered the job. A new contract, six months initially, with the likelihood of extending. Sometimes things go fast.

Some Open-Source Software for Your Delectation

I have made a thing, and pushed it out into the world. Well, really, this is me pushing it out into the world, because nobody will have noticed it before now, and with this, there’s a chance they might.

A couple of months ago Manton Reece and Brent Simmons announced the existence of JSON Feed, a new syndication format to sit alongside RSS and Atom; but using JavaScript Object Notation or JSON, instead of XML.

They invited people to write parsers and formatters and so on for it, and I quickly realised that no-one had yet written one in Java. As far as I can tell that is still the case. Or at least, if they have, they haven’t made it public yet.

No-one, that is, but me, as I have written just such a thing: a JSON Feed parsing library, written in Java. I’m calling it Pertwee. That’s the product page at my company site (more on which later). It’s open-source, and can be found at Github

As software projects go, it’s not that exciting. But it is the first open-source project that I’ve released. I hope someone might find some use for it.

Mandatory Options

Where I’m working at the moment we’re using a tool called Splunk for some log file viewing and analysis. I hadn’t come across it, though apparently it’s quite well known.

So wanting to know a bit more about it, I thought I’d have a run through of their tutorial. To do that you have to sign up for an account. That’s fine, it’s free, there’s no obligation. I’ve signed up for plenty of things.

Except… well, look:

The Splunk signup screen, showing a non-optional checkbox
Splunk Signup Madness

That little “Yes, I want to receive…” checkbox looks like a fairly standard opt-in. The kind we always opt out of. But look at it. Look at its reddish border. The asterisk. These are fairly standard1 ways of indicating that a field is mandatory.

A mandatory opt-in checkbox.

A mandatory option.

After grabbing that screenshot I closed the page. How not to get people to sign up.

  1. Though the red is bad UI/UX, because it doesn’t work well for people with colour-blindness. ↩︎


Well, yesterday genuinely feels like the first day I’ve missed posting this year. A few post-midnight posts have counted towards the previous day, but although I’m writing this early in the morning, it’s definitely the 16th.

It’s for a good reason, though: I went to the pub after work.1

The occasion was the monthly drinks for ex- and still-current-Misys people. Always good to see folk I haven’t seen for a while. And Misys are in the news at the moment. It looks like my old section, Payments & Messaging, won’t be long for this world (even what little is left of it). This D+H outfit — Vista, the owners of Misys, have bought them and are planning to smoosh them together with Misys — is big in payments. I’d expect that their products will be seen as superior, and our Payment Manager will start to be sunsetted.

That’s certainly the likely trajectory if Misys management end up running the combined organisation. They have a permanent, severe case of inverse not-invented-here syndrome. Any product that the company has been making and selling successfully for years (decades, in the case of Midas and Equation) is automatically suspect and needs to be edged out in favour of something that came from another company, and/or is newer and less capable.

Mind you, those old products have a habit of keeping on keeping on (and making the company money). Because, of course, they meet the needs of customers.

Not that anyone was talking about that at the pub.

  1. I did start to write something when I got home, but it was never going to be anything viable. Looking at it this morning it doesn’t even make sense. ↩︎

Recent Events

Just in case you think that I haven’t been paying attention to recent events… yeah, I know, how likely is that…?

Brexit? Trump? Celebrity deaths? 2016 is well behind us — though regarding Trump and Brexit, the worst is still ahead.

But anyway, I haven’t said anything about my work status since back in the summer. So I should bring things up to date.

I had a few interviews, but no serious interest. Then July was ending, and I was beginning to think that soon we’d be going on holiday, and once we got back it would be nearly September. That was longer than I fancied going without having something lined up.

And then I got a call from a recruiter telling me there was a bank in the City looking for someone with my exact skill set for a six-month contract. It was supporting — and to some extent building on — the products that I used to make at Misys. That wasn’t quite what I had seen myself doing. I was looking for something that was more of a change, more of a challenge.

But I went in to talk to them and it all sounded pretty good. A significant number of the people who work there are ex-Misys, and I know them, so it would make for a relatively smooth transition.

But a contract. I hadn’t really intended to go down that route. Still, the idea of being a freelancer appealed. I’d like to have a go at indie development one of these days, and the two can be complementary. We’ll see where that goes. But I decided to go for it. Set up the limited company (more on that in a later post), discussed the contract (including while I was on holiday) and started at the end of August.

And it’s… OK. The people are good, the location is great. But the work is not that interesting, and the internal politics are… interesting.

And there’s the pressure of knowing that you’re dealing (sometimes) with a live system. With real people’s actual money. Having only worked for a software company before, that feels unexpectedly high-pressure.

All things considered, when my contract is up for renewal at the end of February, I don’t think I’ll be renewing it (even assuming they offer it to me, which they probably will). So I’ll be looking for another position shortly. Maybe contract, maybe permanent again. It depends what comes up.

Recent Events

It’s been a strange few weeks.

There was the referendum, and its immediate aftermath. That’s still ongoing, of course, and won’t be over any time soon.

Then there was my leaving do from work, as I’d reached the end of the at-risk period, and am now redundant, obsolete, out of work, etc. The do was good. We had a decent turnout of current and former colleagues. My boss’s boss’s boss, the one who told us the news that we were being made redundant, turned up (he is the only one of the hierarchy who is based in Britain, the intervening layers being in Manila) and paid off the tab at the time he left, which must have been about 7pm. We still managed to spend just over £250 after that, which was optimal, as there were five of us.

I got an Uber home, and accidentally discovered what the difference between “Pool” and “UberX” is. I found myself in a car with four strangers (including the driver). To be honest I don’t think “Pool” was an option when I last used an Uber. I assume the “X” means “Exclusive.”

Anyway, they were all going to Islington, which left me to snooze on to Hackney, so it worked out fine.

And then I was unemployed. It didn’t quite hit me at first, because my beloved and I had a weekend trip to Avebury, which was fascinating. Here’s a picture of some stones. And a sheep.


But Monday dawned, and I set to with my new daily plan:

  • 8:00 – Get up, go for a swim.
  • 9:00-ish – Home, breakfast.
  • 9:30-12:30 – Job-hunt things.
  • 12:30-1:30 – Lunch.
  • 1:30-5:00-ish – Side projects (indie dev/writing).

As you might imagine, I haven’t exactly been sticking to that 100%. But the idea is that it’s going to be important to have some structure to my day now that I don’t have one imposed by full-time employment. And job-hunting can be very time-consuming, so treating that as my job for at least part of each day seems like the right thing to do.

The first day was strange, because I kept having this sense at the back of my mind, “I’m working from home today, so I’ll be in the office tomorrow,” which would have been true on Tuesdays and Thursday afternoons for the last few years. But then of course it would hit me: no office; no job.

I’m enjoying the experience, though, so far at least. I’ve managed to do pretty well with the schedule, and even extended the swimming to using the gym at the local leisure centre. This is the first time I’ve ever used a gym, except for a few years ago when I had physio after injuring my leg.1 The guy who did my induction managed to hide his disbelief of this fact quite well. And now that I’ve done a few sessions I’m thinking, “Why didn’t I do this years ago?” Oh well.

So all in all, a time of change and newness – which would generally be good, and some of it is. But see the first point, above, and the debris from that. An unknown new Tory government who don’t seem to be quite willing to accept that parliament is sovereign, and so it needs to decide whether or not to invoke Article 50 of the Lisbon treaty. And Labour too busy tearing itself apart to hold the government to account.

As to the Labour leadership business, I’ll have more to say about that when I’ve worked out what I think.

  1. I’m wryly amused to see that at that leg link from 2004 I’m expressing bafflement about people who would want to leave the EU. ↩︎


If you pay attention to URLs and such -- and if you're reading this at all -- you'll be aware that my blog is not sited at the root or home page of the site, but at For a long time the home page has been a very basic one, with just a few links to the other places you can find me online.

As of today, it still contains those links, but is a slightly more modern, sophisticated page, and has a new focus.

That new focus is job-hunting. I’ve been working at Misys for more years than I care to think about – well, Misys and one of its precursor companies, BIS, that it bought up in the 90s. And this is the first time I’ve named it in public on the internet.

The reasons I never named it before are to do with keeping work and the rest of my life separate; and more to do with the fact that, as quite an elderly tech company, it didn’t really have any concept of its staff having an online life outside of it – or even inside of it. At least until the last couple of years, when it launched a Twitter account and a YouTube channel… and the less said about them the better.

The same agedness is part of the reason why I have never contributed significantly to any open-source projects: my contract effectively disallowed it.1

And I’m making it public now – and I’m relaunching my front page – because I’m not going to be working there much longer.

Even in the teen years of the 21st century, we are not past the time of jobs being moved offshore, it seems. Well some jobs, at least; and Misys have been moving development jobs to our – to their, as I should learn to say – offices in Manila and Bangalore for years. It was only a matter of time, really.

So about three weeks ago, me and the four other remaining developers in the team were told that we would be leaving at the end of June.2 It wasn’t a shock, or even a surprise. In fact, I think we were all fairly pleased, in the end.

I’ve been expecting it for at least a year, since the last of the developers in another team were sent on their way. To the extent that I’ve been looking around, have been for a couple of interviews; because I didn’t want to be just hanging on there for the redundancy money. That would be a terrible reason for staying. And while the work was still OK, I didn’t have to find a job, so I felt I was in a position of strength.

Now, of course, I’m quite pleased that none of those opportunities came to anything, because I do get the redundancy money. And my CV is up to date, and my LinkedIn and more importantly Stack Overflow profiles are looking reasonably good.

I’m treating this as an opportunity: I’m keen to learn new things, have new experiences, and hopefully work in a development environment with releases more than twice a year, and with end-users I actually get to talk to.

So things are OK, but I am looking for a new job. So if you happen to know of anyone who’s looking for a Senior Software Engineer, or Lead Programmer, or similar, with a lot of experience in Java and various other languages (and who is currently learning Swift), then send them my way.

And I don’t mind being public about all this now, because I fully expect any company I work for in the future to have a more open, progressive attitude to its employees being citizens of the net.

Well, unless Apple are recruiting.3

  1. And, to be fair, I never bothered to seriously investigate changing that. ↩︎

  2. Unless we find other jobs within the company, which is extremely unlikely↩︎

  3. They are, as it happens, but their “London” site is in Uxbridge, a kazillion miles on the wrong side of town. ↩︎

Link: The One Correct Way to do Dependency Injection | Schauderhaft

The One Correct Way to do Dependency Injection | Schauderhaft In the end, "Dependency Injection" just means "passing parameters"; which was always the right way to do things anyway. From my Pinboard

Weirdest Customer Request?

This is one of those unpublished posts I told you about. I don't know why it wasn't published (well, except that I hadn't written the last couple of sentences).

A while back I heard the strangest ever request from a customer.

As you might know, I work for a software house.1 We write financial software for banks. As a thing to talk about it tends to be boring, but it can have interesting challenges.

Anyway, one of our product’s problems, as a web-based app, is that it was written to specifically target the Internet Explorer browser.

I know that seems at best charmingly retro, and at worst appallingly non-standards-compliant, but there are a couple of good-ish reasons. Principally the fact that the original version of the web app was written by contractors who both only knew IE, and were told that our clients only cared about IE. The latter was probably true at the time, and as for the former, well: let’s just say that sometimes people in companies make some stupid decisions, and leave it at that.

Inevitably, and especially as the browser landscape has matured and Apple and Google have come to rule the world, there have been calls to fix things. But there have always been higher-priorities. Getting new features done takes priority over making things work better, sadly.

One of these years we’ll fix it – personally I don’t think it’ll be as difficult as people always think (that fear is another reason why we have resisted doing it).

But what it would really take to force us to sort it out would be if a client demanded it.

If it were going to make or break a sale, we’d be all hands on deck.

So it’s interesting that we got a query a while back wherein a client was concerned about the fact that the app doesn’t work properly in Firefox. This was causing some of their users distress, as FF is their chosen browser. Was this it? Was this the opportunity, at last, driven by customer demand, to bring our app into the late twentieth century?


No, the client had a better idea. They wanted us to to change our app such that it would detect that the user was running something other than IE…

… and prompt them to use IE instead.

Oh dear.

(We didn’t agree to their request.)

  1. Incidentally, why “house”, I wonder? By association with “publishing house”, obviously, but why are those “houses”? I’m reminded of a discussion I had on a software mailing list in the nineties regarding the American tendency (then, if not now) for referring to a “shop”, meaning a programming entity, including an old-school IT department within a company. ↩︎

Thoughts on Business Sectors

It occurs to me that software companies, like the one I work for, are probably considered part of the 'service sector', in the kind of statistics that you hear on the news from time to time. Like most such companies, we do provide services. But at our core, we make and sell things -- computer programs. The fact that the things are delivered by FTP rather than DHL does not make them any less things.

In short, we should be considered as part of the ‘manufacturing sector’; or at least as some sort of hybrid. The national statistics are therefore skewed, and the UK probably has a far larger manufacturing sector than we are generally told.

(Incidentally, I seem to have posted a version of this at, which just lets you do it, with no ‘About’ or any information. Interesting.)