Summary
I have fifteen years of experience in the design and development of applications on the Mac and Windows. I am very experienced with C++ but am also fluent in Objective C and regular C. Recently, I have been working on cross-platform Mac and Windows code, learning Cocoa and WPF programming. At IBM I worked on a tool for visually programming Java. While at Cognos I created advanced charts and crosstabs for Cognos' ReportNet in C++, learning both XML and a charting engine. I was also a team leader supervising others doing the same work. Before that, I worked as a consultant for Macadamian working for several companies doing a large variety of work. Before Macadamian, working at Sir-Tech I created a 3D environment for creatures and items, as well as imported the game levels, for the 3D RPG Wizardry 8. My first job after graduation was working at Corel, where I contributed to CorelMOVE and CorelPRESENTS. I have done a lot of graphical object oriented C++ work at Archonus, Sir-Tech, Pixel Constructs, and Corel. I have also designed and developed a 3D interactive application using OpenGL and RenderMan and created several C++ plugins for Discreet's 3DStudio Max.
Education
1993 Baccalaureate in Mathematics, Honours Computer Science Co-op
University of Waterloo, Ontario
Skills
Mac Cocoa Development
Java Eclipse Development
Visual Studio C++, MFC, WPF, Development
Discreet 3DStudio Max plugins, for gaming and RenderMan
3D applications, OpenGL
XML, some XSD
charting
2D animation
Employment History Detail
bitHeads Inc (oct08 – dec08) (contract)
* primary lead on porting the mobile MDCoder app to the iPhone
* learned XMLRPC and Hessian protocols
* implemented most of the GUI
GridIron Software (apr08 – sep08) (contract)
Senior Software Developer, on Contract
* working on Flow, the original visual workflow tool for creative professionals
* developing cross-platform and platform-specific Mac and Windows code in Objective C, C++, and C#
* Mac is the lead platform, did most of my work in Xcode
* learned Cocoa and WPF programming with latest tools
IBM (jan06 - apr08)
Senior Software Developer
* Eclipse Java Development
* Websphere Integration Developer
* head of Java Visual Snippets (a graphical way to program in Java)
Cognos (may03 - jan06)
Senior Software Developer, Team Leader
* MSVC++ 6, AIX, Solaris, HPUX, Windows 2000
* implemented charting layout engine (used charting graphic engine to create charts)
* learned a lot of XML and XSD
Macadamian Technologies (oct99 - apr03)
Senior Software Developer, Cognos (sep01 - apr03)
* MSVC++ 6, AIX, Solaris, HPUX, Windows 2000
* implemented charting layout engine (used charting graphic engine to create charts)
* learned a lot of XML and XSD
Senior Software Developer, Corel (jul01 - sep01)
* C#, Custom build tools, BSD, Windows 2000
* culled the .NET framework C# classes so that they could be used on BSD
Senior Software Developer, Graphon (jun01 - jul01)
* MSVC++ 6, Java, Linux, Windows 2000
* created a C API (and supporting code) to allow 3rd party developers to create plugins in C or C++ to interface with GraphOn's C++ client software
* ported that same API to Linux
* created a Java API (and supporting code) to allow 3rd party developers to create plugins in Java to interface with GraphOn's Java client software
Senior Software Developer, Cognos (feb01 - may01)
* MSVC++ 6, Windows 2000
* designed and developed a tool to migrate Upfront deployment information and database from older versions of Upfront to version 7.0
* managed another contractor to help with the above, and to have him port it to UNIX (AIX, HP, Sun)
* started work on bringing the Upfront FileManager tool up to date; this tool allows users to manage all sorts of files using Upfront as the front end
Senior Software Developer, USB Device Driver Project (jun00 - jan01)
* MSVC++ 6, Metrowerks CodeWarrior, GNU C, Windows 2000, MacOS 9.0.4, RedHat Linux 6.0
* created a networking device driver for Windows 2000
* learned about USB and how to create a USB driver for Windows 2000
* created GUI for USB/networking device for Linux using Qt
* created USB/networking device driver for MacOS 9
Senior Software Developer, WINE Project (oct99 - may00)
* RedHat Linux 6.0, GNU C
* debugged and corrected deficiencies in WINE according to Corel requirements to make certain Corel applications work optimally in the WINE environment under Linux
* enhanced WINE printing support, especially with regards to PostScript output
* managed a small team of people who worked on certain aspects of WINE
* created a graphical profiling tool for WINE that ran natively under Linux, using Xt/Motif libraries
Sir-Tech Software Canada (may96 - sep99)
3D Game Tools and Engine Developer, Wizardry 8 project
* MSVC 6 C/C++, Windows NT 4, 3D Studio Max, Surrender 3D library
* wrote 3D tools, modules, and other utilities in C, C++, and MFC
* created 3D software to display real-time 3D animated characters with varying level of detail and with different walk, run, attack, etc cycles
* wrote code to display 3D visual effects and other miscellaneous game related visuals
* wrote code to read/write several text and binary file formats and their associated data structures
* created an MFC utility to edit, import, and export character statistics
* created C++ 3D plugins for use in the 3D Studio Max environment by artists to define information to be exported by the export plugin I also wrote
Pixel Constructs Research (fulltime jan95-apr95, part time before and after)
3D Software Developer
* MSVC, Windows NT 4.0, 3D Studio Max, RenderMan, OpenGL
* wrote a 3D Studio Max plugin interface to render a 3D scene
* wrote GUI elements for a 3D material editor
* created an MFC shell application to schedule and render 3D scenes
* wrote a parser with Bison to interpret RenderMan SL shader text files
* wrote a virtual machine to execute SL files in the context of a RenderMan renderer
* created a rudimentary interactive 3D application from scratch using C++ and OpenGL, including support for NURBS and polygon manipulation
Corel Corporation (may93 - dec95, may92 - aug92)
Software Developer (CorelMOVE, CorelPresents)
* MSVC, MFC, Windows NT, Win95
* helped in the design of the next generation CorelMOVE 6 project
* created animation features for CorelPresents
Co-op Software Developer (Filters, MacOS port)
* MSVC, MFC, Windows NT, Win95
* debugged file import/export filters that weren't working properly
* assisted in a port of CorelDRAW to MacOS
Alias Research (sep91 - dec91)
Co-op Software Developer (Alias Animator)
* SGI Irix, SGI C compiler, Alias Animator
* created a randomization feature to allow randomized animation paths for animated objects
* created a cutout feature that would overlay 2D graphics over the perspective view of the application; this allows animators to have a reference grid from which to work
Comnetix (may90 - aug90, jan91 - apr91)
Co-op Software Developer
* MacOS, MPW (Macintosh Programmers Workshop), 4th Dimension, Omnis 5
* solely created a database driven parking ticket tracking application using Omnis 5 for the Macintosh
* was part of a team that created a prototype accounting software package using 4th Dimension for the Macintosh
* solely created a rudimentary 3D graphical map display utility under Mac OS using C++ and MPW
Nortel Networks (jan89 - apr89, sep89 - dec89)
Co-op Software Developer
* Proprietary Nortel Workstations, Apollo Workstations
* created test suites for the Nortel phone system
* wrote test suites in C for a circuit board design application to track the router application (which automatically routes copper tracks on circuit boards)
Interests
* enjoying the company of my wife and kids
* video and board games
* great movies
* good German food