- 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.
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’.
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.
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
Philips Research Laboratories.
Developed tools for automatic generation of test cases from functional requirements expressed as state transition diagrams in UML.
Canon Research Centre Europe.
Implemented a web content management system in Perl. One component of this system was open-sourced as the module
Researcher in computer science.
BA Hons in computer science (Class I).
Christ’s College, Cambridge