Resumé and Other Shenanigans


While I’m quite happily employed right now, here’s my resumé for folks who are curious:

Please only contact me if the job involves at least one of these things:

  • functional programming (preferably Haskell or Erlang), or
  • iPhone or Mac OS X development, using the Cocoa frameworks.

For people ogling at my CV who reside in North America, the standard in Australia for resumés is around three pages. If you’d like a one-page summary, just let me know and I’ll be happy email one to you. (Especially if you work for, say, Pixar or Apple.)

Talk History

I have spoken at conferences and presented at universities several times: here’s a list of presentations that I’ve given so far. (Note that while I don’t have links to downloadable slides for most of these talks, this is mostly because I’m lazy: just email me if you’d like them.)


  • September 2010: Re-presented my “Business of Development” at DevWorld 2010 in Melbourne, Australia.
  • September 2010: Presented a keynote talk at DevWorld 2010 in Melbourne, Australia: “To Pixar & Beyond”.


2007 and Earlier

  • January 2007: Presented a thirty-minute talk titled “Concurrency and Erlang” at 2007.
  • July 2006: Presented a one-hour talk titled “Erlang and Concurrency” to the Sydney Linux Users’ Group (SLUG).
  • January 2006: Presented a talk titled “Controlled Chaos” at the 2006 digital arts mini-conference, about the use of Linux in the Visual Effects Industry (with Anthony Menasse of Rising Sun Pictures).
  • October 2004: Gave a technical demo and poster session at the ACM Multimedia Conference 2004 in New York, on Annodex and Continuous Media Web technologies (with Conrad Parker of CSIRO).
  • June 2004: Presented a talk titled Beyond C, C++, Python and Perl at the Sydney Linux Users’ Group, about type systems and programming languages.
  • January 2004: Presented a talk titled “DJing Beyond the Turntable” at the 2004 audio mini-conference, about the state of the art and future ideas for computer-based music DJing.
  • January 2004: Presented a tutorial at 2004 on an Introduction to Annodex technologies (with Silvia Pfeiffer and Conrad Parker of CSIRO).
  • September 2003: Invited to present a paper I worked on with Don Stewart, Sean Seefried and Manuel Chakravarty titled “Plugging Haskell In” at the National University of Singapore.
  • September 2003: Invited to speak at the National University of Singapore about the Continuous Media Web and Annodex projects.
  • September 2003: Invited to speak at the University of Utrecht about my honours thesis, on binding Haskell to Objective-C.
  • September 2003: Presented a paper titled Interfacing Haskell with Object-Oriented Languages at the Implementation of Functional Languages conference, 2003 (with Manuel Chakravarty of the University of New South Wales).
  • August 2003: Presented a talk titled “Experiences with Template Haskell” at the Haskell Implementer’s Meeting (HIM) 2003 (with Sean Seefried of the University of New South Wales).
  • August 2003: Presented a demo titled “Mocha: An Objective-C Binding for Haskell” at the Haskell Implementer’s Meeting (HIM) 2003.
  • March 2001: Gave a talk on zsh (the Z shell) at the Sydney Linux Users’ Group.

Software I've Hacked On

In the interests of reminding myself what bits of open-source software I’ve submitted patches for and contributed to (and also to make updating my resumé easier :), here’s very incomplete list of software I’ve hacked on.

I am a primary author of:

I have contributed to the following open-source projects:

  • Shun-ichi GOTO’s swiss-army knife connect TCP utility: Small bugfix for systems where memset() on a null pointer (such as Mac OS X) dumps core.
  • The VLC media player: Support for the Annodex bitstream format, CMML markup, revived the VLC Mac OS X Mozilla plugin, and general bugfixes
  • rzip, a file compressor even tighter than bzip2 and RAR: Patch for systems which don’t have strndup() in their C library (such as Mac OS X)
  • pspresent: Added Xinerama (multi-screen) support, autoconfiscation patch. (Not quite sure if the latter is a good thing or a bad thing …)
  • hs-plugins: Dynamically load Haskell code as plugins, and also easily embed Haskell in C.
  • xine: An open-source media player, similar to VLC. Helped with the Mac OS X port, wrote some Cocoa classes that wrap libxine (Cocoaxine), and wrote Maxine, a xine front-end.
  • The Linux Kernel: Patches for video corruption that occur with the VIA KL133/KM133 chipsets.
  • Previously maintained the bzip2 port for MS-DOS (via djgpp)
  • Tracked down some graphics corruption that occured with some video cards in the Mac OS X port of Frozen-Bubble. (Fixed in Frozen Bubble 1.0.0e)
  • Illiminable’s Ogg DirectShow filters: significant contributions, including Mac OS X and UNIX ports of the command-line tools, many bugfixes, influence on its architecture and design, and the mod_oggchef Apache module that dynamically recomposes of Annodex media files.
  • Contributed Mac OS X patches to ejabberd, a popular open-source Jabber server.

Like most coders, I have a large number of incomplete projects and small scripts which aren’t big enough to deserve a mention here. I did, however, get a fair way through a NWScript compiler/decompiler before I was beaten to it by Torlack’s NwnNssComp (it should probably be noted that Torlack is now an employee of BioWare :-).