I’m a computer programmer. I ask computers to do things for me. Occasionally, if I ask nicely, cross my fingers, and make the correct incantations, they comply.
I run my own software development company Elegant Chaos.
These days we’re mostly working on our own products, but previously we’ve also contracted for other people.
Most recently, I worked on Sketch from 2012 to the end of 2017. I was the second full-time coder to work on Sketch (Pieter, who founded the company, and who is still heavily involved in the day-to-day development, was the first).
During my time on the application I worked on the architecture, the back-end, importers, rendering scripting, and all sorts of other things. I also helped to put in place a half-decent workflow, with feature branches, unit testing, code reviews and continuous integration. Latterly my main focus was “tools and technology”, which encompassed two main areas: internal tools and processes to make our own team more productive, and external scripting and tools to allow other people to write plugins for Sketch and to incorporate it into their workflow.
Before Sketch, I’ve worked at a number of interesting places, including games studios (Sony and Sports Interactive), music studios (Real World and Abbey Road), and some pioneers in the early years of multimedia (Multimedia Corporation, ULTRALAB and the Centre for Educational Studies). If you want to know more, check out my Past Lives page, or read my CV.
I think of myself as a Mac programmer, since that’s what I’ve been doing for most of my professional life. With the event of the iPhone and the iPad that description is getting a bit inaccurate, but it will do. I’ve also worked with any number of other platforms, and am not averse to doing so again.
I’m not an Apple fanboy, but I like good human-centred design and more often than not I used to find myself drawn to their products as a user. This was equally true as a developer - it used to be a pleasure to develop for the Mac (and iPhone/iPad too). These days I feel that Apple have lost their way a bit. Their “it just works” catch phrase often proves inaccurate - in my experience at least.
I’d really like to find a new platform to work on and to use - but right now I’m not sure what it would be. I’ve tried the obvious alternatives (a number of times), and whilst Apple now frustrate me, the alternatives frustrate me way more.
Back in the day, I wrote what we now call “Carbon” applications (they were just called Mac applications then), using Codewarrior (or Think C or MPW) to write C and C++ code. Or even Pascal, back in the day before the day.
Between about 1999 and 2009 I was working on a number of games which ran across a number of platforms. For about seven of those years I worked on the core cross-platform and user interface libraries for a game called Football Manager, which is made for both Windows and Mac, and has other incarnations or related products and tools on Linux, PSP, XBox360 and other things. I also had a spell working on tools for Sony, which had to run on Windows, and have ported other games to the Mac from Windows.
All of which means that I’ve got a lot of cross-platform experience, as for quite a long period I was not a Mac programmer in my “day job” in the strict sense of the word, despite having a Mac on my desk and writing most of my code on it with Xcode.
Such things as music, books, food, beer, games, football, politics, and of course computers.
My musical tastes are catholic, and it’s hard to know where to start. Probably in the late sixties, I guess.
My taste in literature tends towards science fiction, but there’s plenty of room for other stuff, such as contemporary fiction and crime.
My taste in football tends towards Queens Park Rangers, largely because I grew up in Kilburn & Cricklewood at a time where QPR were a half-decent team. They haven’t been for most of my adult lifetime, but once the choice has been made, one doesn’t get to change such things. I lived nearer to Crystal Palace for a while, which was my granddad’s team. They weren’t really any good either. Now I live on the Isle of Lewis, in the Outer Hebrides, and the nearest professional football team is a ferry ride away!
My taste in food tends towards spicy. I’m a vegetarian, which steers me in certain directions too, and my favourite cuisine is probably what you might loosely term “South Indian”. I love cooking, but eat too much junk food.
My taste in beer is Belgian and trappist. I’m not sure about the whole god thing, but those monks certainly know what they’re doing on the beer front. My favourite beer is currently St Bernadus Abt 12.
My taste in politics tends towards social justice, secularism, and collective responsibility.
I would say that there is such a thing as society, unlike Margaret Thatcher, who famously said that there was no such thing. I believe that the mess that it is in is all our faults. I tend away from authoritarianism and dogma, and don’t have a lot of time for people who think that there’s much in the world that is black and white.
I don’t really mind if you want to quietly believe in one or more gods/higher-beings/aliens, but I don’t, personally. I do believe that organised religions are mostly about power, rather than spirituality - and as such are generally a hindrance rather than a help to society. They have been and continue to be the cause of far more suffering than good, despite many noble people doing good things in their name.
I’m not particularly fond of moral relativism, and I do believe that there are certain values that are worth defending, regardless of who they offend. Cultural sensitivity only goes so far: if you’re a racist, homophobe, or religious zealot, for example, then we probably won’t get on too well.
I’m into most things related to software engineering, but particularly authoring tools, cool languages and finding good ways to do this whole programming thing better. I also love computer games, particularly the world-building / simulation types.
My parents met at art school, and many of my relatives have pursued careers in creative fields.
I’d like to think of myself as creative, though I don’t seem to have directly inherited the painting/drawing/making skills that the rest of my family have. I tend to think of programming as a happy blend of science, engineering and art, which is just where I want to be. If pushed, I’d rather be described as a craftsperson than a scientist.
I enjoy the process as well as the outcome, but ultimately I want to make elegant stuff that works well - not just stuff that works.
I’ve got programming experience in all sorts of weird languages, but for many years the one I liked best was Dylan. It may well still be, although I haven’t used it much for a while.
I used to say that my ideal authoring tool would by a strange hybrid of The Alternative Reality Kit, Hypercard, SK8, Dylan, Python, Smalltalk and Prograph. My ideal job might well be to develop it. Maybe I will…