On hiring (developers)

First off, we’re hiring. You should apply. Even if you don’t apply, check out the spec. This post will make more sense if you do, and I’d love it if you were to forward it to anyone you know who would fit.

We’ve yet to see if it will produce the right results, but one interesting thing has emerged from writing this job spec is that we’ve not done it as a collective. It’s largely been my doing, with editorial feedback from the rest of the team.

There are a couple consequences of this. Some good, some bad, some still in a superposition of the two.

we’re looking to hire someone who can do this job better than me

The part of it I especially liked is that the way the job requirements (both in the spec and as we’re viewing it) is that we’re looking at the person who currently is doing / would do the job and saying “You need to do the job better than him”. We’ve done this a bit less formally previously when hiring our new sysadmin, and it just sortof emerged naturally this time as a result of the fact that I was the one pushing the hardest to get this job spec done and posted. Whatever happens, I would very much want to retain this aspect of the process: Pick a person in the company who would do the job if you don’t hire for this role, make them responsible for speccing out the job and make them the primary decision maker on whether the person gets hired – other people get to veto, but they’re the one doing the initial approval by saying “Yes, I would rather have this job done by this candidate than done by (a perfect clone of) me”. I think this is very much the right way to do it.

15 years of BBQML

The fact that I wrote it brings with it a certain authorial style. This is both good and bad. If you’re reading this blog you probably are familiar with that style by now – whimsical, fairly abrasive and decidedly non-traditional. All of that comes through in the job posting.

Personally, I think that’s ok. Everyone in the company seems to have liked the posting (Well, they laughed. That’s good, right?), so enjoying the style is probably a good sign of a compatible personality. On the other hand it may turn out to be a bad thing – it may scare off some people who would actually work well for the role (I have at least one friend who is giving me a hard time because he thinks the posting is unprofessional and makes me sound like a wanker), on the other hand it may attract too many people who self-describe as rockstar ninja cyborg artist programmers.

If it turns out not to work, I will modify my style for postings in future, but I am hopeful.

we don’t want yet another [REDACTED]

The biggest feature of this posting that may or may not work in our favour is its honesty. It’s very much “This is who we are, this is what we’re looking for”. There are some tensions you can see behind it as a result. Will they scare people off? I hope not. As a company, we’re very much not perfect. No one is, and if you expect the company you’re applying to to be perfect then you’re in for a bit of a shock whomever they are. I hope that being up front about this is a good thing, and a nice departure from the whitewashed corporate-speak you get in a lot of job postings.

and…?

All in all, it’s been an interesting experiment. I look forward to seeing the results.

Let me know what you think.

Northpaw, part 1

So I’ve bought myself a Northpaw kit.

Why? Well, partly because I’m interested in this sort of thing – different modes of perception of and interaction with information – but mostly because it looked cool and I was in a gadget buying mood.

After some grief from the royal mail it finally arrived on friday, and I spent some time today at the london hack space putting it together.

I don’t have anything very exciting to report so far: I basically got it to work, but mangled the assembly. The electronics turned out to be relatively easy – the results aren’t elegant, as I have the manual dexterity of a blind walrus and haven’t soldered in 12 years, but they seem to work. The positioning of the motors however turns out to be rather a challenge.

I found the ribbon extremely hard to configure correctly, and the power connection for it very hard to get right in a way that gave me any capability to position the motors correctly. I’m sure it’s doable, but I couldn’t do it. So the upshot is that I’m going to have to rebuild that part. Fortunately the motors all work and the electronics seems to talk to them correctly. My inclination is to take the ribbon mount off and wire it together with normal wires rather than ribbon.

Another update will be forthcoming when I’ve actually got the thing wearable.

Teaching

Another IRC conversation. alaric is Alaric Snell-Pym.

20:27 <@alaric> I am a dark master at taking a bespoke requirement, and coming up with a generic yet easily-implemented solution to it, that can be resold in future
20:27 <@DRMacIver> Teach me your ways, master alaric
20:27 <@alaric> I’ve been wondering how to do that, actually
20:28 <@alaric> Most of my software design-fu is intuition, but I know it should be extractable into a series of principles
20:28 <@alaric> So I’ve been wondering what they are…
20:29 <@DRMacIver> Extracting things into a set of principles is the wrong way to teach something anyway.
20:30 <@DRMacIver> You’re taking a thought process, creating a set of steps that you don’t actually use in that thought process, and then expecting people on the other end to somehow recreate the original process
20:31 <@alaric> Agreed, but in order to teach something, you need to know what it is
20:31 <@DRMacIver> Disagreed.
20:31 <@alaric> And my issue right now is that I have these Intuitions, which aren’t very communicable
20:31 <@DRMacIver> Knowledge is a very overrated feature for teaching and learning.
20:31 <@alaric> The best I could do right now is to set people a design exercise, look at their solutions, and point out how they could be done better
20:32 <@alaric> Which would get the point across eventually, but it’d take a while
20:32 <@alaric> Or I could list examples from my past
20:34 <@DRMacIver> Both of those sound more useful than a set of principles.
20:35 <@DRMacIver> I think interactive learning is really the best way though. Either set someone a problem or have them work on their own ones and interact with them as they do – ask and answer questions, point out alternatives, etc.
20:35 <@DRMacIver> Of course this is very time consuming.
20:36 <@DRMacIver> Which is why no one is never taught anything properly and has to learn it for themselves.
20:37 <@DRMacIver> There might be good ways to parallelise this though: e.g. give twopeople two different lessons, stick them in a room together and tell them to solve the problem together.
20:38 <@DRMacIver> This of course only works on motivated students.
20:38 <@DRMacIver> But unmotivated students can fuck off as far as I’m concerned :)
21:39 <@alaric> I’d like to figure out what principles I use, though, even if only to make sure that exercises I set end up covering them all
21:42 <@DRMacIver> Teaching people is also a good way to codify your knowledge I think.
21:42 <@DRMacIver> i have a friend who refers to my rules of interviewing.
21:42 <@DRMacIver> Thing is… I don’t *have* any rules of interviewing. I have a general body of advice and knowledge, which upon relating has become slightly more formalised.
21:43 <@alaric> Yes
21:43 <@alaric> That is a valid process, IMHO
21:43 <@DRMacIver> Agreed.

The role of a CTO

IRC conversation with Al Davidson

< DRMacIver> I must admit to only having a relatively vague idea of what a CTO job involves (and a much stronger conviction that I don’t want one any time soon).
< DRMacIver> As I’m fairly sure that craig isn’t typical of the role.
< al_> i think you’re right on that score
< DRMacIver> My impression is that it seems to be somewhere more in the realm of “You’re supposed to get to work on the fun stuff but so much of your time is taken up by boring administrative crap that you don’t get to, but it’s still your fault if it goes wrong”
< al_> bingo
< DRMacIver> I see the old chestnut of “take rosy eyed view of the world and apply cynicism until it starts to weep” still works.
< al_> david, i think you just described the human experience in a nutshell

Sweet and spicy roast aubergine

This was a very simple recipe, but it produced really good results.

How to make it: Take the aubergine, slice it in half lengthways and then cut the halves into strips so you you end up with long strips of aubergine each with some of the peel on them. Lay them out in a small roasting tin (you should basically be covering the bottom of the tin with the aubergine), cover in the marinade and roast for abotu an hour until the marinade has all evaporated leaving only goo and auberinge.

How to make the marinade: Adjust quantities to amount of aubergine. For one smallish auberigne I used about half a cup of water, two tea spoons of white sugar, one tea spoon of salt, one tea spoon of chipotle chiles in adobo, a dash of balsamic vinegar and liberal amounts of olive oil (probably a couple table spoons – roughly the amount you’d normally roast this much aubergine).

The time to evaporate the water and then roast the aubergine basically obliterates it, but in a very good way – you end up with very soft aubergine still just sticking to the peel. It’s sweet, spicy, slightly smoky from the chipotle in adobo, and very very tasty. I ate this served with corn bread, but it would probably work slightly better as a side dish to something else.