I’m a computer programmer. From time to time, I ask computers to do things for me. Occasionally, if I ask nicely, they comply.
I’ve worked at a number of interesting places over the years, 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.
These days I have two roles.
Primarily, I work on Sketch. 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’ve worked on the architecture, the back-end, importers, rendering scripting, and all sorts of other things. I’ve also helped to put in place a half-decent workflow, with feature branches, unit testing, code reviews and continuous integration. These days my main focus is “tools and technology”, which encompasses 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.
With my other hat on, I’m an indie developer, running Elegant Chaos. That hat is mostly gathering dust at the back of a cupboard at the moment.
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. I would say that I am an Apple programmer, except that I don’t program fruit. Technically I suppose I’m a Cocoa programmer, but programming hot beverages sounds just as mad as programming fruit.
I’m not an Apple fanboy, but I like good human-centred design and more often than not I find myself drawn to their products as a user. This is equally true as a developer - it’s generally a pleasure to develop for the Mac (and iPhone/iPad too these days).
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.
Now I try to work exclusively on MacOS X and iOS projects, using Xcode to write Objective-C with the Cocoa frameworks.
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, 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 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! Oh well.
My taste in food tends towards spicy things! 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, and the mess that it is in is all our faults. I tend away from authoritarianism and dogma, and don’t have much 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 a danger to society, and have been and continue to be the cause of far more suffering than good. I’m not particularly fond of moral relativism either, and I do believe that there are certain values that are worth defending, regardless of who they offend. 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 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 the one I like best is Dylan. My ideal authoring tool would by a strange hybrid of The Alternative Reality Kit, Hypercard, SK8, Dylan, Python, Smalltalk and Prograph.
My ideal job would be to develop it. Offers anyone?