Highly skilled, motivated, results oriented software architect & developer.

Contact Information

516 Crawford Street
Toronto, M6G 3J8, Ontario, Canada
Mobile Phone: 416 414 3605


BSc Computer Science with Honours
Coventry University, Coventry, UK


To apply my leadership, analysis, design, programming and technical skills to drive the development of successful solutions to key business requirements using current and emerging technologies in collaboration with a talented and dedicated team.


Over fifteen years' experience in professional and Open Source software development, consulting, business and technology. Specializing in Web Application development but with a wide range of additional skills across multiple platforms and architectures.


Java/J2SE/J2EE/JSP/JSF/Servlets, Struts, Spring, Hibernate, JavaScript, jQuery/jQueryUI, ExtJS, Dojo, NodeJS, HTML/XHTML, CSS, Ajax, XML, XSL/XSLT, XPath, HTTP, WebDAV, FTP, SMTP, Unity3D, C#, Python, Unix/Linux, OS X, Windows, CVS/svn/git, …

Work Experience

Founder, Consultant

Zotech Software, Inc.

Toronto, ON Canada
From: March 2005 Until: Present


I founded Zotech Software around March of 2005, with the objective of developing and marketing software as an Independent Software Vendor. The first product was a web based application to support Agile Software Development through process automation and tracking. The product failed to gain sufficient funding to reach market and the intellectual property developed was subsequently sold to a competing interest.

From there, I repurposed Zotech as a Consulting / Research and Development practice, and have operated it in that capacity since early 2007. I've worked on a wide range of projects, both commissioned and speculative, a selection of which are highlighted below.

Project Highlights

  • Project ‘Z’: As noted above, Zotech's first product was an Agile Development Process automation and tracking application. The product was to be marketed initially as an online, hosted solution. Users would be able to enter key project data—feature descriptions, priorities and estimates; task assignments and work logs; QA feedback and customer responses; etc.—and would track progress, providing reporting and visualization on key metrics such as velocity and burn-down charts, defect/feature ratios, and so forth. Similar products currently on the market include offerings from VersionOne and AxoSoft, among others.
    Technologies Used: Java / Java Servlets / JavaServer Faces / Struts 2 / Hibernate / Spring / Postgres / XML / HTML / CSS / JavaScript
  • xRest Web Application Middleware: An Open Source project, xRest is a middleware API for the Express web framework. It supports implementing RESTful HTTP service end-points through intelligent request routing and HTTP content negotiation, allowing a single 'controller' component to serve full HTML responses to browser and Ajax requests as well as JSON/JSONP, XML, plain-text and other formats suitable for consumption as web services. The entire project is written in server-side JavaScript running on Node.
    Technologies Used: Server-Side JavaScript / Node / Express / JSON / XML / REST / Web Services
  • Custom Dojo Widget Library: Before Dojo's UI framework was as mature as it is today, I was contracted to develop a number of custom widgets, as well as produce enhancements and bug fixes for existing widgets in the Dojo Framework. Where possible, enhancements, fixes and widgets were contributed back to the Dojo project; the remaining widgets were published as an independent Open Source project. Although I terminated my involvement with that project once the contract expired, it continued to be developed and maintained by others until advances in the core Dojo Framework made it increasingly obsolete.
    Technologies Used: Dojo Framework / JavaScript / Ajax / HTML / CSS
  • Terrain Voxelization and Nav-Mesh Generator: Aimed at improving the spatial awareness of AI driven game agents in Unity3D productions, this project analyzed terrain- and scene-model data using a 3D rasterization process to decompose the scene into voxel data. A watershed algorithm then aggregated the voxel data to produce a connected mesh of navigable regions, with attached meta-data to support efficient A* and HPA* path finding. The work was largely based on Mikko Mononen's Recast Navigation project, implementing the same algorithms in C#, adapted to Unity's APIs.
    Technologies Used: C# / Unity3D / Mono / .Net

Software Engineer

Critical Path, Inc.

Toronto, ON Canada
From: June 2000 Until: Jan 2005


Critical Path is a market leading supplier of Internet Messaging solutions and services. My role involves working with products providing advanced, highly scalable messaging solutions for email, calendaring, address book, file management and multi-media services delivered via multiple channels (HTML, WML, iMode, Pocket PC) and available as licensed software or hosted services.

My primary role is as technical team lead of the application framework that forms the basis for web based UI components for all of Critical Path's messaging services. I have also assumed various ancillary lead roles at different times, dealing with customer escalation and support issues, sales initiatives, team development, process improvement and more.

Roles and Responsibilities

  • Coordinating activity between sales, marketing, engineering, quality assurance, professional services and technical support staff to ensure timely and effective responses to customer enquiries, marketing and technical requirements and internal business needs.
  • Leading one of three tracks and participating fully in a company wide engineering summit with the objective of identifying key opportunities for the integration of the company's software products into a cohesive messaging platform and driving consensus among key engineering staff on implementation approaches.
  • Team and technical leadership in the development of a Java based web application framework (similar in purpose to frameworks such as Struts or Turbine), including requirements specification, technical design, resource allocation, development, testing and delivery.
  • Developing and incrementally improving a number of documentation, process and technical initiatives to facilitate my team and others throughout the company in achieving maximum effectiveness in developing and delivering excellent solutions.
  • Collaborating in standards track work on the Access Control Protocol sub-group of the IETF's WebDAV working group to help define this protocol extension and ensure compatibility and compliance in Critical Path's products.
  • Assessing new technologies and third party solutions for applicability and value to Critical Path's messaging UI solutions.
  • Team development including assisting in the hiring of new staff, providing training, skills development and mentorship to existing staff and participating in performance reviews.

Skills and Technologies Used

Java, J2SE, J2EE, XML, XSL, HTML, HTTP, WebDAV, Sevlets, JSP, web applications, device independence, product and project management, object oriented analysis and design, communication, software production.

Software Engineer and Team Lead

The DocSpace Company Inc.

Toronto, ON Canada
From: April 1999 Until: June 2000


DocSpace was a successful startup providing cutting edge secure web based messaging services and PKI solutions via the web through an ASP style managed/hosted service. It was aquired in early 2000 by Critical Path, Inc. which is still hosting the services developed at DocSpace.

I joined as a Software Engineer and was soon rewarded for my efforts and contributions with project lead responsibilities. My role was primarily design, implementation and testing of new features on the DocSpace application suite.

Roles and Responsibilities

  • Consistently executing on extremely tight schedules (product release cycles as short as six to eight weeks) to provide quality software to a deadline.
  • Designing and delivering a mechanism to provide distributed, delegated access control to administrative functions in the web based administration component of the DocSpace offering.
  • Designing and delivering a cryptographically secure scheme for email distribution of URLs for content delivery that was patent pending at the time of DocSpace's acquisition.
  • Providing rapid response to technical support issues including technical analysis and fault resolution.

Skills and Technologies Used

Java, J2SE, XML, XSL, HTML, HTTP, WebDAV, Servlets, RDBMS (Oracle, SQL Server), web applications, analysis and design, software production, communication.

Systems Programmer

GroveWare Inc.

Toronto, ON Canada
From: March 1998 Until: April 1999


I joined GroveWare shortly after it was founded to develop web applications using a proprietary framework based on an XML messaging architecture. Their first product to market was a calendaring application for event publishing targeted at educational campuses.

My roles included helping to bring GroveWare's first product to market, contributing to the development of a variant focused on small business customers and defining and developing a third product providing on-line discussion forum functionality.

Roles and Responsibilities

  • Specification, design and implementation (including market research, competitive analysis and requirements definition; project scheduling, reporting and resource monitoring; application' development and testing) of an Internet-based bulletin board-like forum application based on GroveWare’s core technology utilizing a multi-threaded XML messaging architecture implemented in Java 1.1/1.2 on top of an object oriented database back end with an HTML user interface generated from DSSSL-styled XML.
  • Developing, supporting, maintaining and debugging GroveWare's event notice and calendar publishing applications using the same core technologies under Linux, Solaris 2.6 and Windows NT 4.
  • Enhancing and expanding the development environment and multi-platform build process to manage multiple products and product variants in a single centralized repository.
  • Assessing XSL and CSS as possible replacements or extension mechanisms for the DSSSL styling layer of GroveWare's products.
  • Specifying, designing and developing a simple in-house HTML-based CRM tool for sales contact tracking in Perl with MySQL.
  • Assisting in application testing, bug tracking and quality assurance; code and architecture reviews; writing documentation and on-line help.
  • Performing hardware upgrades, network monitoring, maintenance and support for the company's IT infrastructure including Intel and Sun SPARC machines running Linux, Solaris 2.6, FreeBSD 2.2, Windows NT, Windows 95 and Windows 98.

Skills and Technologies Used

Java, XML, XSLT, CSS, DSSSL, Jade, Object Databases (Object Design Inc's Object Store PSE Pro, Poet Software's Poet), CVS, make, Perl, shell scripting, Jikes, Perl, MySQL.

Systems Engineer

Savant Enterprises Ltd.

Coventry, England Canada
July: March 1996 Until: March 1998


Following completion of my degree I returned to Savant to continue providing business intelligence solutions consulting.

Roles and Responsibilities

  • Designed and developed a report printing sub-system for Oracle Express Objects based EIS (Executive Information System) and MIS (Management Information System) applications (Personal Oracle Express, Oracle Express Objects).
  • Implemented a client/server architecture MIS data mart application using Oracle Express Server on AIX for the server side and Oracle Express Analyzer on Windows for the client side.
  • Implemented Oracle Express based server-side data extraction, export and aggregation mechanisms using SQL to interface with relational back end databases (Oracle Express, SQL, Oracle 7, Access 2).
  • Managed the office network of Windows 95 workstations, Windows NT and Novel Netware servers, including the formulation of company strategy and policy.
  • Instigated and implemented a project to deliver Internet access and Email to the corporate desktop.

Systems Engineer (work placement)

Savant Enterprises Ltd.

Coventry, England Canada
July: July 1994 Until: September 1995



Roles and Responsibilities

  • Managed a project to deliver a health care practitioner performance monitoring EIS application through its full life cycle, including determining client requirements, specifying and designing the application, full implementation, deployment and user support (Personal Express, Express EIS, Microsoft Project).
  • Performed requirements analysis, design and development of an EIS solution for health care monitoring using IRI's Express EIS toolkit for Personal Express (Personal Express, Express EIS).
  • Developed a graphical report printing technology for Savant’s Express EIS based applications which was subsequently contributed to IRI's technical services group for use in other projects.
  • Performed debugging, profiling, maintenance, enhancement and support of a suite of EIS and MIS tools built on OLAP and relational database technologies and tool sets (Oracle Express, Express EIS, Express Objects, Express Analyzer, Oracle 7, Access 2).
  • Installed and configured a new Windows for Workgroups network integrated with the existing VMS server (Windows 3.x, PathWorks).
  • Participated in the process of preparing the Coventry office for accreditation to ISO9001, which was later successful.