Ravenbrook Ravenbrook is a software engineering consultancy. Our goal is to increase the value of the software industry to society.

Gareth Rees



  • Software configuration management and defect tracking: see my paper.
  • User interfaces: from console video games to HTML5 to iOS.
  • Algorithms: from signal processing to artificial intelligence.
  • Programming language implementation. Lexers, parsers, compilers, runtime systems, memory management.
  • Many languages: C, C++, C#, Fortran, JavaScript, Lisp, Lua, Objective C, OCaml, Python, shell, SQL, and more.


  • 2012– Consultant. Ravenbrook.
  • 2010–2011. Game developer. Otterly. Designed and developed the original puzzle game Floe for the iPhone and iPad. I wrote about the development in the article ’History of level 24’ and described one particular technical lesson in ’Encapsulation is not always right’.
  • 2003–2010. Game developer. Zoonami Limited. Worked on most aspects of game development: system administration, game design, level design, scriptwriting, low-level graphics (for example, programming the texture environment unit on the Wii), tool chain automation (for example, writing a 3DS Max plugin to export model geometry), asset management, configuration management, defect tracking, user interface, audio, music, physics, network play, save file management, localization, and so on. See my articles on the automatic level generation and the asynchronous user interface to the local wireless networking.
  • 2000–2003. Consultant. Ravenbrook. Designed and implemented the Perforce Defect Tracking Integration Project which integrated the Perforce software configuration management system with the Bugzilla defect tracking system. Consulted on software configuration management and defect tracking. Developed a coverage testing tool for Python; open-sourced as coverage.py.
  • 1999–2000. Senior Scientist. Philips Research Laboratories. Developed tools for automatic generation of test cases from functional requirements expressed as state transition diagrams in UML.
  • 1998–1999. Researcher. Canon Research Centre Europe. Implemented a web content management system in Perl. One component of this system was open-sourced as the module HTML::FromText.
  • 1997. Software engineer. Persimmon IT. Wrote a JavaScript compiler and runtime, and a byte code interpreter to run it on.
  • 1993–1996. Researcher in computer science. Cambridge University.


  • 1989–1993. BA Hons in computer science (Class I). Christ’s College, Cambridge
$Id: //info.ravenbrook.com/project/www.ravenbrook.com/version/4.0/page/consultants/gdr/index.shtml#3 $