Work History

Work History
Sep 2009 - Present


Data Realm Software Inc.

Analyzed, designed, and implemented a niche health care application for scheduling and practice management using python, django,  javascript, jQuery, mysql, and JasperReports.

Invented new heuristics algorithms for Kemeny ranking while doing research and business development on data-driven decision making.   Designed and ran computational experiments to compare these algorithms with optimal solutions from an integer linear program implemented with pyomo.

Aug 2010 - Apr 2011

Sr. Software Developer - Contract

Elastic Path Software

Helped design and develop a REST-ful shopping api for  Elastic Path's e-commerce framework using Java, Apache CXF  and Spring. 

Sep 2009 - Mar 2010

Sr. Java Developer - Contract

Developed data synchronization and ETL solutions  using Java, JPA, and  Pentaho Kettle.

Jun 2005 - Sep 2009

Sr. Sofware Engineer


Team lead for the development of three versions of Actenum's rig scheduling application.  The team included developers, researchers, and QA specialists.  Involved in all aspects of development including pre-sale demos; requirements; design; estimates; user documentation; coding using Java, Swing, Hibernate, and Webstart; quality assurance and testing; and on-site customer training and deployment.

Apr 2002 - May 2005

Sr. Software Engineer, Methodology Advocate


Developed the optimization algorithms for  About:Time® for Exchange Server using C# and AboutTime is an enterprise resource scheduling application that reduces costs and boosts customer satisfaction. Unlike calendaring systems, AboutTime finds solutions to complex scheduling problems in seconds. It is a web application that uses web services, a MS SQL Server database, and is integrated with Microsoft Exchange. Designed, developed, and executed stress tests that simulated load from concurrent users using Application Center Test (ACT).

Jun 2000 - Feb 2003

Sr. Software Engineer, Team Lead

Knowledge Junction Systems

Team lead on ConciseMatch - a guided selling solution for telecommunications providers. ConciseMatch used a 3-tier J2EE web architecture with a Weblogic application server and JSPs, EJBs, and XML/XSLT. I was responsible for managing and mentoring 10 junior and intermediate developers.   I was also responsible for research and development of the core configuration algorithms.  These algorithms were prototyped using Ilog OPL Studio then implemented in Java.

Jan 1999 - May 2000


Total Care Technologies

Played an key role in designing and developing the eXpert application for nurse scheduling. eXpert's Schedule Generation assists with creating a Staffing Model and Position Mix, as well as helping to generate optimal schedules that meet the demand while satisfying constraints imposed by policy, union contracts, and staff preferences.  Created prototypes using C++ Builder, participated in requirement and design meetings, and developed the algorithms to create a position mix using Ilog Solver and C++.

1994 - 1998

Research Scientist, Lab Manager

Intelligent Systems Lab, Simon Fraser University

Research scientist on the Intelligent Scheduling project.  Applied methods from artificial intelligence, constraint reasoning, and operations research to problems like forest harvest scheduling, optical reflector design, and staff scheduling. Awarded more than $300K in research grants including Modern Heuristic Methods for Staff Scheduling (BC Advanced Systems Institute), ConstraintWorks: A Toolkit for Scheduling and Resource Allocation (IRIS T-Gap), and Simon Fraser University Prototype Development Fund.

1987 - 1988

Software Engineer

Nixdorf Computer

Software developer on a project on Advanced Data and Knowledge Management.  Developed software in Prolog for a knowledge management system with a natural language front-end.

1983 - 1984

System Analyst

George N. Jackson Ltd.

Maintenance and support for a for an order-entry, purchasing, accounts receivable, and inventory system.


1979 - 1982




Databases, SQL Server, Oracle

Web Development, J2EE, ASP.NET


Scheduling and Optimization

Agile Methodologies