Software Engineering Resume

Current Position

May 2001 – present  IBM  (originally with DataMirror, acquired by IBM in 2007)   Senior Technical Staff Member

My current role is as architect with Watson Studio, IBM’s development platform for data scientists.

Previously I was the architect for Lift, a solution for moving data from on premise to IBM’s cloud analytics offerings.

But to return to the beginning, in 2001 I joined DataMirror during their development of a data replication based high availability solution for Oracle.  I began in a development role and transitioned into a management role as the first version of the product was released. This was DataMirror’s first transaction log based change capture technology for Oracle.

In 2004 I moved over to the heterogeneous replication product (then called Transformation Server, now called IBM InfoSphere Data Replication).  My first project was to allow Transformation Server to utilize the log based capture developed for iReflect.

In 2005 I  became the architect for a new replication engine to be written in Java. For the first two years as we added support for DB2 LUW and Microsoft SQL Server to this engine I was able to contribute both in the design and implementation of the engine.

As we transitioned all of our LUW support to this Java engine I became the lead architect for CDC with my time split between a focus on the architecture and design of the CDC technology and working with clients and the rest of IBM about the role of replication and its integration into larger IBM solutions. One of the key integrations was with the Db2 z/OS database to create the IBM Db2 Analytics Accelerator.

Previous Employment History

July 1998 – December 2000 YOUtv Inc., Toronto

Senior Technical Lead

YOUtv marketed a television program format which utilized viewer comments recorded via unattended kiosks. More than 20 major TV stations throughout North America were using this technology.   

The kiosks were turnkey systems using PC hardware running Windows 98. The user interface was written in Visual Basic and utilized customized applications and device drivers written in C++ to control multimedia PC cards and interface cables controlling audio/visual components. I was responsible for managing and directing all aspects of the technology including the design, manufacturing and support of the network of kiosks.

January 1998 – July 1998 Advanced Solutions Group, Toronto

Team Leader, Product Development

Advanced Solutions Group is a developer and systems integrator of document imaging systems.

I managed a team of three people developing a product suite providing client/server access to document warehouse systems running on midrange computers. This product suite runs under Windows and OS/400 and includes components written in C++ and Visual Basic.  It includes tools to create custom user interfaces. It is a set of interconnected applications performing optical character recognition, controlling industrial document scanners and creating networked connections with native OS/400 document storage systems.

June 1995 – January 1998 Spyker Software Engineering


My work centered around Windows-based solutions using Visual Basic, Visual C++ and Oracle. I held a term position at Gandalf Technologies as part of a development team creating a configuration manager written in Visual Basic that used SNMP to interact with Gandalf’s network router devices.  I also worked on the design and development of an audiovisual database for a client in the market research industry. The user interface was created in Visual Basic. The system could use either Oracle or SQL Server as the back-end database. It included C++ components to manipulate and trim the audio video content.

October 1991 – May 1995 Fulcrum Technologies, Ottawa

Senior Developer

Fulcrum Technologies was the developer of a suite of client/server products allowing complex text based searching of documents.

I was part of the SearchTools development team. We packaged Fulcrum’s core technology search engine to allow it to be more easily integrated into custom solutions. The development was cross platform, primarily in C++, including all major operating systems. The most important targets were Windows and UNIX. I was involved in packaging the technology as a SQL engine, an ODBC driver and Visual Basic, PowerBuilder and C++ custom controls.  Approximately 10,000 SearchTools licenses had been sold by 1995.

I also worked extensively on the networking features of the core technology (utilizing BSD Sockets) and on the core indexing algorithms. I ported the core technology to several new Unix versions, such as AIX.

October 1990 – June 1991 ZIM Service Centre, Netherlands


This was a seven month term position with the Ministry of Public Works in the Netherlands providing technical management for a team of seven developing a personnel management system using the database ZIM.  My time was split evenly between analyzing requirements and creating a database design and architecture for the system.

October 1988 – October 1990 Choreo Systems, Ottawa

Senior Software Specialist

Choreo Systems was a sales and consulting organization that has specialized in UNIX and open systems software, CASE tools and ZIM (a relational database).

I provided expertise to Choreo’s sales people and customers on the use of CASE tools and software engineering methods. I worked with these tools on all major Unix workstations. I provided consulting, sales presentations and hot-line support. I also was product manager for a set of ZIM developer tools written in C.

June 1985 – June 1987 Prior Data Sciences, Ottawa

Programmer Analyst

Prior Data Sciences was a consulting firm specializing in real time and graphics based computer systems.

I worked on a project team developing and supporting an implementation of a computer graphics package (GKS). I was part of a team of 8 people working on the package. A major personal project was the interfacing of GKS to a prototype high quality graphics controller and display. I worked in C under UNIX, VMS, MS-DOS and XENIX. Other projects included writing Unix device drivers for graphic input devices, and debugging I/O conflicts within the Unix kernel.

May 1982 – August 1984 Prior Data Sciences, Ottawa

Programmer (co-operative student)

Through four work terms my projects included a process monitoring system for a coal-fire generating station, a flow chart editor and a data acquisition system for industrial laundries. My final project was the conception, design and implementation of a hierarchical graphical system interface and editor, which was the prototype for a Maritime Command tactical system developed by Prior. I worked in Pascal and C and used Interdata machines, DEC equipment under RSX and VMS, and three brands of UNIX workstations.

January 1981 – December 1981 Metro Toronto Roads and Traffic

Junior Programmer (co-operative student)

I worked for the Traffic Control Division responsible for the computer control of the Toronto area traffic lights. I assisted programmers in the development of a new system of hardware and software. I translated code, tested and developed small simulations to be used in testing. I worked in FORTRAN and Assembler on Interdata machines.


Bachelour of Mathematics, co-op

Double Honors, Pure Mathematics and Computer Science

University of Waterloo, September 1980 – April 1985