• Jim MacArthur
Robots, automata and electronics



Jim MacArthur


  • Main skills: C, C++, Assembler (ARM including ARMv8, x86, POWER), compilers and binary translation.
  • Other skills: Perl, Java, Python, Linux, Windows, AVR
  • 13 years experience of wide ranging software development, specializing in code generation and performance tuning.


Februrary 2013 - Present: Senior Software Engineer, Codethink Ltd

  • GFortran legacy enhancements: I created and maintain a public branch of GCC with additional legacy Fortran support. Some of these patches have been offered upstream to GCC.
  • In-car infotainment: I was part of a team brought in late to a project to diagnose faults and improve performance. We were able to familiarise ourselves rapidly with the system and provide recommendations; my own example saving 10% of the system's memory.
  • X86 Android emulator: Architect and lead engineer for a desktop-based Android test environment, using virtualized X86 Android with native OpenGL rendering. I led a team of 3-4 people to deliver this product in 2014 which recevied positive reviews.

Recent conferences attended:

  • Debian Reproducible Builds Summit, Athens, December 2015
  • Chaos Communication Camp, August 2015
  • EMFCamp, August 2014
  • FOSDEM, January 2014

June 2012 - February 2013: Career break

  • Learning Javascript and Python for games development
  • Took and passed the Standford University online Compilers course.

May 2010 - June 2012: Senior Compiler Engineer, ARM

  • Feasibility study into the use of LLVM as a backend code generator for RVCT.
  • Tuning and benchmarking of memcpy for ARM11 architecture.
  • Bringup of the ARMv8 backends for GCC and GDB.
  • Performance tuning of bzero for big.LITTLE architecture.

2004-2010: Senior Software Engineer, Transitive Ltd

(Acquired by IBM in June 2009)

  • Developer of dynamic binary translators and related virualization technology for a variety of platform combinations
  • Extensive performance tuning of X86->POWER translator including making use of the new little-endian features in the POWER6 architecture.
  • X86->ARM translator performance work on Firefox including automated performance measurement.
  • Lead developer for a new parametized X86 decoder, capable of generating a decoder for high performance or low memory environments. Shipped as part of a product in September 2009.
  • Began work on a microcheckpointing high-availability product for IBM's P-Series line.

2003-2004: Developer and system administrator, Centre for Pharmacy Postgraduate Education 2001-2003: System administrator, University Of Manchester 1996-97, summers 1998 and 1999: Software Technician, Pi Research


BSc (Hons), MEng Computer Science 2:1

University of Manchester, 1997-2001

Specialising in hardware and networking where possible. My projects here included network packet reassembly and distributed multi-user social environments.

Other Interests:

Maker spaces: Founding member of Cambridge Makespace ( Makespace is a community workshop in Cambridge, for people to meet, learn and build almost anything. Member of London Hackspace, a similar organisation in London.

Embedded Linux and microcontrollers: I've picked up experience configuring Ubuntu, OpenBricks and Linaro distributions for my IGEPv2 OMAP3530 platform and significant experience developing for PIC, AVR and MBED.

Mechanical Computing: Designed and built a fully mechanical universal Turing machine, exhibited at Maker Faire, Newcastle in March 2011.

Nationality: British Age: 35 Full UK driving licence

References available on request