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.)
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”.
- September 2008: Presented a talk at DevWorld 2008 about The Business of Development in Melbourne, Australia.
- June 2008: Presented a talk titled “Mac OS X Linguistics” at Galois Inc, Portland.
- March 2008: Presented a one-hour talk/tutorial titled “Monads are not Scary” at the fp-syd user group, in conjunction with the fearsome Manuel Chakravarty.
- February 2008: Presented a thirty-minute talk “Toward the Massive Media Matrix”, at Foo Camp New Zealand (a.k.a. Baa Camp).
2007 and Earlier
- January 2007: Presented a thirty-minute talk titled “Concurrency and Erlang” at Linux.conf.au 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 Linux.conf.au 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 Linux.conf.au 2004 audio mini-conference, about the state of the art and future ideas for computer-based music DJing.
- January 2004: Presented a tutorial at Linux.conf.au 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:
- The Continuous Media Web project: helped design and implement lots of their code, including libcmml, libannodex, and liboggz.
- HOC: A Haskell to Objective-C binding, which enables writing Cocoa applications in Haskell.
- vimacs: Emacs emulation mode for the Vim text editor.
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 :-).