Reuben Thomas: CV

This CV was last updated on 25th June 2008. It is also available as PDF.

Full name
Reuben Rhys Thomas
Date of birth
13th November 1973
Nationality
British
Contact address
9 Oughtonhead Way, Hitchin, Herts. SG5 2JZ England
Telephone
+44 7791 179665
Email
rrt@sc3d.org
Referees
Names provided on request

1  Summary

I am a software developer with a background in research. I offer:

1.1  Working skills

Initiative and Responsibility
I can plan, execute and take responsibility for my own work (see sections 4.1).
Teamwork
I can work as part of large and small groups to meet deadlines and quality standards (see sections 3.4, 3.3).
Management
I can both organise colleagues and assist those depending on me (see section 3.5).
Service
I am confident in dealing with users (see section 3.4) and customers (see section 3.3), able not only to give good service, but to elicit help in return.

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.
Programming languages
I can use a wide range of languages in various paradigms (see section 5.2).
Operating systems
I am familiar with several major operating systems (see section 5.3), and the issues involved in building and maintaining portable software.
Writing
I can structure, write and edit documentation in a fluent yet terse prose style.
Oral communication
I have excellent oral communication skills, including fluent French, and am practised at addressing audiences large and small.

1.3  Personal qualities

Strong aesthetic sense
All of my activities are driven by a strong aesthetic sense which favours the elegant and simple over the flashy or baroque.
Respect for reuse
I am unwilling to reinvent the wheel, prefer to use good tools where they exist, and aim to fit what I do with existing standards, where appropriate.
Eye for detail
I like to get the details right in all aspects of my work, making it higher quality and more maintainable.
Passion for accuracy
Whether writing, speaking or coding, I aim for accuracy without being distracted by the lure of mere precision.

1.4  Experience

Software development
I have worked on large, established systems from end to end of the development process (see section 3.4), contributed to many projects en passant and built systems from scratch (see section 4.1).
Research
I am well versed in both the technical aspects of carrying out research, and in communicating the results (see section 4.1 and my research page).
Teaching
As a Director of Studies and Supervisor I have both organised student teaching, and taught small groups and larger classes (see sections 3.5, 3.6).
Collaboration
I have worked in small and large groups in offices and collaborating remotely, with people I know intimately and with others I have never met.

2  Current employment

2.1  1997–present: Adsensus Ltd

I am a Principal of Adsensus Ltd, a consultancy with a focus on process and culture change in IT companies. I am responsible for the company’s own technical infrastructure, and developed the tools it uses to build customisable web applications, which have a particular emphasis on modularity and the ability to be customised through Microsoft Word templates.

2.2  1995–present: Free software

I have contributed extensively to a wide range of free software, with particular emphasis on improving robustness, portability and interoperability. Projects to which I have made major contributions include SoX, the sound converting and processing program, file, the file identifier, Zile, the text editor which is a portable and resource-light clone of Emacs, and plptools, the communications suite for connecting EPOC PDAs to PCs.

2.3  2005–present: Web site building

I have built a number of web sites for private and commercial clients, providing not just technical expertise, but design and copywriting advice and input. Client sites include Perfect Pitch Music, Todd Wilander and Pine and Country Antiques. My focus is always on building sites that are simple, attractive, lightweight, accessible and standards-compliant, keeping use of bells and whistles to a minimum. For example, the sites mentioned above use only a few lines of JavaScript and no Flash.

2.4  2003–present: Systems administration

I am the systems administrator for Collegium Records, an independent record label, which runs a highly heterogeneous on-site system, including machines with four different operating system families as well as off-site internet presences.

I also consult for a range of individuals and small businesses.

3  Previous employment

3.1  January 2006: Web application localisation

I localised a major health provider web application written in American English for the British market for RIC International, adapting about two hundred thousand words in hundreds of web pages and message files using a translation memory application.

3.2  April–December 2004: Translation of Éléments de théorie des automates for Cambridge University Press

Working closely with the author, Jacques Sakarovitch, I translated this major 800-page work on automata theory into English, dealing not only with abstruse technicalities, but with the range of erudite puns, misquoted classical poetry and other jokes with which the author peppered his magnum opus.

3.3  November 2001–August 2003: Programmer at Protechnic Exeter Ltd

I worked on the Priority Health Connection health management system, which is used in NHS trusts across the UK and Eire. My tasks ranged from application programming and bug fixing to planning future developments and development methodologies.

3.4  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.5  October–December 1996: Acting Director of Studies in Computer Science for St John’s College Cambridge

I organised supervisions for about twenty undergraduates, liaising with supervisors across the University (during PhD course; see section 4.1).

3.6  1995–2000: Supervisor on the Computer Science Tripos

I supervised courses included Pi Calculus, Type Theory, Advanced Algorithms and Business Studies (during PhD course; see section 4.1).

4  Education

4.1  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.

4.2  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.

5  Technical skills

5.1  Software design and implementation

I have implemented a complete ANSI Forth compiler, aForth, ARM and virtual machine back-ends for the LCC C compiler, and have worked extensively on maintaining, porting, and extending the Glasgow Haskell Compiler and the Lua system.

For Adsensus Ltd, I have implemented a simple but powerful web site templating system, Nancy, and XML-based tools to allow web pages to be written in tightly-controlled Microsoft Word forms.

In my work on both proprietary and open software, I have developed an emphasis on improving the robustness, portability, and interoperability of code while reducing line count and simplifying design. Examples include reducing the number of network ports needed by a health care system from hundreds to a single one, thus greatly simplifying network administration; adding plugin support to the SoX sound processing system, enabling codecs and sound effects to be distributed pre-compiled by third parties, under different licenses if desired; and merging the databases used for MIME and human-readable file types in the ‘file’ program. I have also modernised and simplified a number of GNU autotools-based build systems, including those of GHC, SoX, file, Zile and plptools, making the programs more portable, easier for third parties to build and distribute, and easier to maintain.

5.2  Programming languages

I am expert in C and Lua, experienced in Perl and bash, and familiar with C++, Python and Ruby. 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 extensively with XML as a data language, and am familiar with SQL.

5.3  Operating systems

I have developed POSIX software (especially under Linux), Windows and RISC OS, and ported many POSIX tools to RISC OS and EPOC. Most of the software I have written is highly portable.

5.4  Documentation and technical writing

Besides my PhD thesis, I have published several papers on my research, written a prize-winning essay, 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 experienced with DocBook.

5.5  Spoken languages

I speak fluent French, conversational Italian, and basic Dutch and German.

6  Other work

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

7  Other interests

I am particularly drawn to creative pastimes such as composing, writing poetry and translation, and also enjoy reading, walking and cycling.

This document was translated from LATEX by HEVEA.