Location:Cape Town, South Africa
Date:Sep 18, 2013 04:07

Mid to Senior level Free Software developer with broad experience. Extensive experience programming C on Debian GNU/Linux.


To develop software that strengthens the public domain. Ideally at the Operating System level.


Bachelor of Science with Honours in Computer Science, Rhodes University, Grahamstown, South Africa, with distinction and Academic Honours, 1999.

Bachelor of Science (Information Systems), Rhodes University, Grahamstown, South Africa, 1998.

RECENT EXPERIENCE (academic, commercial, voluntary)

5/4/2009 - presentSoftware Developer
Intevation GmbH, Greenbone Networks GmbH
Osnabrueck, Germany; Cape Town, South Africa
Languages:C (GCC), SQL (SQLite), XML, XSL, HTML, LaTeX, Relax NG
Operating systems:Debian GNU/Linux
Area:Network security scanning

Further feature development for the OpenVAS network servers.

SQL driven network services. XML protocol design. GTK programming. XSLT based web development.

27/10/2008 - 4/4/2009Bespoke software development
(5 months)Intevation GmbH
London, United Kingdom
Languages:C (GCC), SQL (SQLite)
Operating systems:Debian GNU/Linux
Area:Network security scanning

Prototyped and developed the OpenVAS Manager, a network server for the OpenVAS security scanner (

19/6/2007 - 18/3/2008Software Engineer
(9 months)Shadow Robot Company
London, United Kingdom
Languages:C (GCC), Bash
Operating systems:Debian GNU/Linux

Wrote firmware for a pressure control unit. Completed a network daemon. Improved a sensor calibration program. Added features to GTK robot GUIs.

Analysed vibration frequencies on a mobile camera frame. Delivered the frame to the client in Germany.

Merged CAD models of a robot hand using the Blender animation program. Assembled and finished hardware. Performed light Debian system administration. Wrote documentation. Helped with maintenance of the building.

19/3/2007 - 18/6/2007Intern
(3 months)Shadow Robot Company
London, United Kingdom
Languages:C (GCC), Bash
Operating systems:Debian GNU/Linux

Ported a large portion of a robot driver from kernel space to general Unix userspace.

1/7/2006 - 18/3/2007Public domain Lisp exploration
(7 months)Voluntary
Languages:C (GCC), Common Lisp
Operating systems:Debian GNU/Linux

Started the Nightshade project, which aims to produce an entirely public domain Lisp system.

Nightshade is based on an old version of CMU Common Lisp. Added a mail handling library, a document preparation system and a build system. Added many features to the editor, including simple syntax highlighting, command histories, a calendar and online manual browsing.

1/2/2005 - 26/6/2006Computer Officer
(14 months)School of Computing, University of Leeds
Leeds, United Kingdom
Languages:C++ (GCC)
Operating systems:Debian GNU/Linux, Redhat Fedora
Area:Numerical domains for software analysis
Reason for leaving:Fixed term contracts

Maintained and developed the Parma Polyhedra Library (PPL, under Dr Patricia M. Hill, in collaboration with Prof Bagnara and Dr Zaffanella of the University of Parma.

Most of this work was the implementation of the abstract interpretation domain of Grids. The rest included implementation of the beginnings of a generic product of domains, addition of Debian package building to the PPL repository and some assistance of students.

Visited the University of Parma with Dr Hill, and attended the SAS/Lopstr 2005 conference.

1/12/2003 - 31/11/2004GNU Emacs experimentation
(11 months)Voluntary
Languages:C (GCC), Emacs Lisp, GNU Lightning assembler
Operating systems:Debian GNU/Linux
  • Investigated the speedup available to Emacs through the compilation of byte-code Elisp functions to native code. The resulting addition to Emacs compiles any byte-code, and hence any Elisp function, to native code. It is archived at
  • Contributed to the Emacs distribution the `set-file-times' primitive, various minor reference manual corrections, a few small code corrections and a set of typing break reminder mode enhancements.

OLDER EXPERIENCE (all commercial)

02/04/2002 - 17/10/2003Developer
(17 months)Tao Group Limited
Reading, United Kingdom
Languages:Virtual Processor Assembler (VP), C (GCC), Bash script, intent shell script, Perl, SQL (MySQL), HTML
Operating systems:Debian GNU/Linux, intent RTOS
Industry:Software (cross-device media platform development)
Reason for leaving:A move towards Free Software programming

Main projects:

  • added fragmentation measurement and simple defragmentation to EFS, intent's native file system (mostly C, some VP and some Bash)
  • wrote a fairly extensive test of surprise media change for EFS (mostly VP, some intent shell scripting)
  • created a layer device to simulate asynchronous delay on synchronous devices (VP)
  • used the layer device in creating a test of surprise file closure for the EFS streaming mode of operation (mostly VP, some intent shell script)
  • adapted the EFS media change test for the Java RecordStore class (VP)

Also added mailing, reporting and CVS tagging features to the internal web-based task management system (Perl, SQL).

26/02/2001 - 5/10/2001C/C++ Developer
(7 months)Globepost Technologies (Pty) Ltd
Cape Town, South Africa
Languages:C (GCC), SQL (MySQL), HTML
Operating systems:Redhat Linux, Solaris, Windows 95
Industry:Travel (online flight sales)
Reason for leaving:South African branch closed

Worked on a variety of tasks, chiefly:

  • maintaining and extending the fairly large code base
  • rewriting the libraries used to parse results from the ticket reservation system
  • producing a duplicate ticket error checking program.

Spent smaller amounts of time tidying and improving the system's Makefiles, and installing and configuring the South African Solaris server.

13/11/2000 - 31/01/2001Developer
(2.5 months)Tangible Business Software
Pretoria, South Africa
Languages:Retrievalware Script, C and C++ (MS), Python
Operating systems:Windows NT
Industry:Contractual programming
Reason for leaving:Lack of expected Unix programming work

Cleaned some of a COM C code wrapper written in C++. Added a small amount of functionality to the web interface of a document storage system. Started looking into using SWIG to generate a Python interface to the document storage system.

24/01/2000 - 03/11/2000Web Developer
(9 months)Zen Computing
Johannesburg, South Africa
Languages:Java, JSP, Javascript, SQL (Sybase), XML, XSL, HTML
Operating systems:Redhat Linux
Industry:Web Software Development
Reason for leaving:A move towards lower level programming

Ported the ASP website content management interface to JSP, then re-implemented the interface in a combination of JSP and Javascript.

Implemented the Randshow website ( This included HTML conversion to XSL, Java library customisations, JSP website management tool customisation, installation of the system and liaison with the client.

1996 - 1998Holiday and part-time positions
South Africa
  • Two months of error correcting and implementation on a Visual Basic Human Resources GUI at Infopro in Johannesburg.
  • Ten months part time general computer technician work for Nexus Computers in Grahamstown.
  • Four month-long holidays of batch processing, simple financial statement preparation and financial report programming, for AMTAX in Stutterheim.


3/1999 - 11/1999Computer Science Honours
Rhodes University
Grahamstown, South Africa
Languages:C++ (GCC and IRIX cc), C (GCC), Sparc Assembler, Java, SQL (Postgres), HTML
Operating systems:Redhat Linux, IRIX, a little Solaris

Course modules were Project Management, Computer Graphics (with C and OpenGL), Java, Networks, Distributed Web Computing, Advanced Architectures (with SPARC assembler) and Parallel Processing (with Occam and CSP).

Research mini-thesis: "Towards a Virtual Operating Environment -- Exploring Immersive Virtual Interface Design Using a Simple VR Image Viewer". Included 3D application development on IRIX in C++ with the Rhodes University CoRgi virtual reality library. Archived at

Tutored first and third year Computer Science practical classes once a week.

1995 - 1998Bachelor of Science (Information Systems)
Rhodes University
Grahamstown, South Africa
Languages:C++ (Borland, Microsoft), C (Solaris), Modula2, Prolog, Clang (C clone), BNF (for Coco/R), Assembler (for a machine emulator), Clarion, SQLWindows, SQL, HTML
Operating systems:Windows, small amounts of Solaris and FreeBSD

Majored in Computer Science and Information Systems, with credits in Mathematics, Statistics, Accounting, Economics and Management.

Computer Science modules included Introduction to Programming, Advanced Programming, Databases, Systems Theory, Networking, Object Oriented Analysis and Design, Operating Systems, Translators and Programming for Artificial Intelligence.

During 1997 tutored two second-year Information Systems practical classes once a week.


EnglishFluentNative language.
AfrikaansBasicStudied as a second language at school.
XhosaRudimentaryGrew up on a farm in South Africa.


CITIZEN OFSouth Africa