Curriculum Vitae
Education
I have a Bachelor of Science with distinction in Computer Science and
Mathematics and the degree with distinction. I also have a BSc Honours in the
Mathematics of Computer Science with Distinction (The degree comprises honours
modules in Pure Mathematics, Theoretical Computer Science and Experimental
Computer Science). I was doing a Masters in Computer Science, but dropped out
to work instead.
Employment History
- 2012 - Currently a Software Engineer at Facebook.
- 2012 - Contract work Snapbill. Technologies
used: PHP, Python, Puppet
- 2011 - Internship at Nimbula. Wrote an EC2 API
Shim. This was a service which exposed an EC2 SOAP and REST API and
translated the requests into Nimbula Director API requests. Technologies
used: Python and Twisted.
- 2010 - Internship at Amazon Web Services on
the EC2 Team. My first project was replacing an internal XML-RPC system with
something faster (ended up being JSON). The second project was creating a
distributed monitoring system of the EC2 API, which alarms on elevated
failure rates. Technologies used: Java, Python and EC2.
- 2008 - Contracting work at CareerJunction as a Junior Python Developer. Wrote a
restful broker in Django which validates/transforms HRXML documents to
internal systems. Technologies used: Django, lxml and the TurboGears Stack.
- 2008 - Wrote a command-line wrapper around libgpod for iPod syncing in
the Fun Station Project. Technologies
used: C.
- 2007 - System Administration and Code maintenance for The Hitforge. Technologies used: FreeBSD, Trac, PHP,
Apache, eJabberD, Python.
- 2007 - Vacation work at Postilion. Maintenance and feature addition for
management reports. Technologies used: Python & SQL Server.
- 2007 - Set course-work for 1st year Python course at University of Cape
Town. The Python course is a course for above average students, that
already know how to program in Java. Topics covered: Python Syntax and Data
Type, UML, Unit Testing, Regular Expressions and Functional Programming.
- 2006 - Two internships at Standard Bank. I was a bursary student, but
discontinued the bursary to look for more interesting opportunities. I did
work in C# and Java. C# work was a basic front-end to a SQL database. The
Java work was Servlets for another database. Another project that I worked
on was a Java servlet that generated a graph of the dependencies between
Oracle databases.
Programming Languages
I am proficient in the following languages:
I have written small amounts of code in the following languages:
- Emacs Lisp
- Haskell
- Bash
- C#
- PHP
- XSLT
Open Source Project
I enjoy using open source software and often publish code I have written as
open source. See my code
for more info.
Olympiads
I have participated in many computer olympiads. These are contests that test
your problem solving skills as well as implementation, testing and debugging
skills. Below is a summary of my results in major contests in chronological
order.
- Bronze medal in SACO 2004 (South African Computer Olympiad)
- Represented South Africa at the IOI in 2005 in Poland (International
Olympiad in Informatics)
- Silver medal in SACO 2005
- Ended the USACO 2005/2006 season in the Gold Division (USA Computer
Olympiad)
- Silver medal in the IOI 2006 in Mexico
- Team was second in the ACM ICPC Southern African Regionals 2006
- Team was third in the ACM ICPC Southern African Regionals 2007
- Team was third in Standard Bank IT Challenge Finals 2008
- Advanced to Round 3 of the Google Code Jam 2008
- Team was first in the ACM ICPC Southern African Regionals 2008
- Team attended the ACM ICPC World Finals 2009 in Sweden. Came 2nd in the
African/Middle-East Super Region and tied for 49th in the overall standings.
- Team was first in the ACM ICPC Southern African Regional 2009
- Attended ACM ICPC World Finals in Harbin, China in February 2010
- 9th in Code Jam Africa and Arabia 2011
I have been serving on the Scientific Committee for the South African Computer
Olympiad since 2006. This entails setting problems and writing solutions (in
Python, C++ and Java) for the SACO 2nd and 3rd round, and for the training
camps for IOI selection.
Other Awards
- High school: Merit List; First in Advanced Maths, Computer Science,
Accounting
- Dean’s Merit List 2006, 2007 and 2008
- Computer Science 2A Merit List
Other Computer Interests
- Unix. I use Ubuntu Linux, Gentoo Linux and FreeBSD
- Being a console junkie. I can ‘live’ in screen, emacs, irssi, etc
- Functional Programming. Haskell, Lisp, Functional Style in Python
- LaTeX
Interests Outside of Computers
- Abstract Mathematics. Especially Point-Set Topology, Logic, Category Theory
and the more theoretical sides of Computer Science such as Computability
Theory.
- Squash and Skateboarding.
References
On request I can supply references.