I'm a highly experienced and flexible software developer, with a strong focus on maintainability and portability (between different CPUs and operating systems). I also routinely deal with emerging issues, both in software and in the process for its development, before they become problems – whether this be cleaning up poorly-maintained code to make it more robust in the face of on-going development, imposing order on unruly build systems, ensuring traceability of licensing requirements on open source components or fostering the switch to improved tools when they become available. Together with learning my way around each code-base, this has made me one of the developers others routinely come to for help and advice.
I have been employed since the 1980s as a professional software engineer with incidental responsibilities ranging from training colleagues, user support and product documentation to UNIX system maintenance, language design and in-house tool development. I have a long history of noticing systemic problems, invisible to management, that hamper development – and getting them resolved.
Potential employers wanting references from my past employers should contact me (by e-mail) and I'll put you in touch. You can also view my portfolio and find some recommendations from former colleagues on LinkedIn.
As a student I edited the journal, Eureka, of the university society for Mathematicians (the Archimedeans), of which I was first Publicity Manager and later President. Other undergraduate follies, too numerous to enumerate, ranged from organising my college's contribution to the Rag in my second term to participation in public debates at the Union Society.