Reuben Thomas: CV

Full name
Reuben Rhys Thomas
Nationality
British
Email
rrt@sc3d.org
Referees
Names provided on request


This CV was last updated on 2nd April 2026. It is also available as PDF.

1 Summary

I am a software designer and engineer with a background in research. I can untangle complex problems to focus on what is important, identify simple solutions that involve minimal disruption, build consensus around their adoption and guide their implementation. I contribute to a wide variety of free software, and consult for a range of individuals and businesses.

1.1 Personal qualities

I always aim to practise the three cardinal virtues of a programmer:

Laziness
Human time and talent is precious, and should be used where it is really needed. I seek to reduce human effort (often we can simply do less; otherwise, we can use machines), reuse techniques and tools to solve old and new problems, and recycle past investments wherever possible. I aim for “right first time” solutions that do just enough to satisfy today’s needs while leaving the door open to further improvements tomorrow.
Impatience
We should not put up until tomorrow with what we can fix today: the sooner we improve our situation the longer we shall reap the benefits. I always ask the question: what is the simplest thing I can do for the biggest return?
Hubris
Existing solutions are not always best: when it seems best to start afresh, I will.

These virtues are informed by the three fundamental values:

Beauty
All of my activities are driven by a strong aesthetic sense which favours the simple and elegant over the flashy or ornate.
Truth
Whether communicating orally or in writing, with people or machines, it is important to conform to reality: honesty and accuracy matter more than plans and precision.
Music
Life is not a race, it’s a symphony. Ultimately our contribution is measured by how much we enable others to make theirs.

1.2 Technical skills

Software development
I have a firm grasp of the software development process from analysis and design through coding and testing to delivery, support and maintenance. I have worked extensively on compilers, virtual machines, web back-end systems, document publishing tool-chains including XML technologies such as XSLT. I have been an effective collaborator on many free software projects (see section 2.6).
Programming languages
I can use a wide range of languages in various paradigms. I am expert in C and Python, experienced in Perl, Lua and Bash, and conversant with Go, C++, Rust and Lisp. I am familiar with most major styles and families of languages, and am able to bring the benefits of all to each. I have worked with XML extensively as a data language, and with SQL.
Operating systems
I am familiar with major operating systems, and the issues involved in building and maintaining portable software. I have developed on many UNIX-style platforms (particularly Linux), and have a strong focus on developing portable software with standards such as POSIX and ISO C. I have also worked with proprietary operating systems such as Windows, and such oddities as Acorn RISC OS and EPOC.
Writing
I can structure, write and edit documents (see section 2.7) in a fluent yet terse prose style. Besides my text book translation and PhD thesis, I have published several papers on my research, and worked extensively on documentation for dozens of programs. I am expert in LATEX (some of my packages are available on CTAN), and am also familiar with DocBook.
Oral communication
I have excellent oral communication skills, including fluent French, conversational Italian and basic German and Dutch, and am practised at addressing audiences large and small.

2 Parallel employment

For most of my career I have worked simultaneously in a number of fields:

2.1 2017–2024: Mattereum

At this legal tech startup, I was the first staff programmer, working directly under the tech lead, and took our backend codebase from a JavaScript prototype to production TypeScript. I helped grow the development team, taking on management and training responsibilities, and worked with internal customers to roll out tooling to non-technical users. At the same time I was able to control technical debt and ensure maintainability, especially by contributing to upstream open source projects, and releasing a new, small project of our own, to minimize the amount of code we had to maintain internally.

At an earlier stage, I also worked as an analyst, finding and evaluating potential customers, partners and competitors, and as a writer and editor, helping to refine and communicate the company’s vision.

2.2 2013–2016: Parsec Systems Ltd

I consulted as an analyst and developer on a long-running project for a major broadcaster’s television advertising platform. First we analysed and optimised their existing advert scheduling system, then we rewrote the scheduling engine; in both phases we increased revenue, while minimising disruption to this business-critical system, and simultaneously moving from in-house to cloud deployment.

I worked across the stack, from algorithmic analysis in the initial phase, to writing an analytics dashboard for our new scheduling engine.

2.3 2014: Google Fonts

I worked on the implementation of Metapolator, a free software tool for manipulating entire fonts, as part of Google’s vision for bringing more human languages online. As well as writing much of the back-end code, I built a Vagrant-based development environment to make it easier to on-board volunteer developers, upstreamed patches to 3rd-party JavaScript libraries to reduce our maintenance burden, and made some crucial interventions to resolve problems at the interface between design and implementation.

2.4 1997–2014: Adsensus Ltd

I was a Principal of Adsensus Ltd, a consultancy with a focus on process and culture change in IT companies. I was responsible for the company’s own technical infrastructure, and developed the tools it used to build customisable web applications, with a particular emphasis on modularity and the ability to be customised through Microsoft Word templates by technically-competent non-programmers.

2.5 1989–present: IT consultancy

As a consultant to individuals and companies, I work with clients to identify and then meet their needs at the level that works for them, whether they are technically advanced or neophytes, and whether they want to be heavily involved in planning and decision-making or would prefer to have me take decisions for them.

I can give one-off or on-going advice; my longest-standing client is Collegium Records, an independent record label, whose highly heterogeneous on-site system has included machines with four different operating system families as well as off-site internet presences, for whom I have acted as systems administrator, IT strategist, and social media consultant for over fifteen years.

I have also taken on roles that involve considerable trust, such as forensic analysis of sensitive personal data.

2.6 1995–present: Free software

I have contributed extensively to a vast range of free software, with particular emphasis on improving robustness, portability and interoperability. Projects to which I have contributed include the text editor https://www.gnu.org/emacs, file, the file identifier, and SoX, the sound converting and processing package. I have also adopted and updated several mature packages, such as Recode, the text encoding converter, Enchant, the meta-spellchecking library, and PSUtils, a suite of utilities for manipulating PostScript documents, working with both previous maintainers and downstream packagers to ensure continuity.

Since 2023 I have been working on Ursa, a new programming language for recreational and practical programming that aims to combine the comforts of modern programming with the ease of use of 1980s microcomputers, and, like the Z-machine, be a stable target for long-lived coding.

2.7 2003–present: Editing, writing and proof-reading

I have worked as editor, translator, lyricist, copy-writer and proof-reader on a variety of projects, including translating a major text book in theoretical computer science from French into English, editing and writing copy for personal and corporate web sites, authoring two opera libretti, and editing and proofing documents ranging from academic papers to career-critical professional letters.

2.8 1982–present: Singer

I am a professional classical singer, singing daily at Westminster Cathedral, working regularly with a wide range of groups and appearing as a soloist. For more details, see my Singing CV.

3 Education and Academic Posts

3.1 1999–2001: Postdoctoral research assistant at the University of Glasgow Department of Computing Science

Working at Microsoft Research Cambridge on the Glasgow Haskell Compiler, I was responsible for maintaining and enhancing the Windows port of the compiler, the .NET back-end, and the build system.

3.2 1995–2000: PhD at University of Cambridge Computer Laboratory

I designed and implemented Mite, a virtual machine that allows multiple languages to be compiled into binary-portable object code, and translated at load-time into native code. Producing good quality native code is left to the compiler, and does not affect the speed of the fast load-time translator.

3.3 1992–1995: BA in Computer Science with Mathematics at St John’s College, Cambridge

I obtained first-class honours in Computer Science with Mathematics, and was awarded several prizes and a college scholarship for my examination results (which included obtaining the second highest mark in the university two years running), and the St John’s College Master’s Essay Prize for an essay on the future of computing.

4 Other interests

I am a published composer, lyricist and translator, and also enjoy performing and recording stories and poetry, and book design.


This document was translated from LATEX by HEVEA.

Last updated 2026/04/02