416 356 2848


Highly motivated, creative and versatile technical consultant with deep experience in building software. Especially skilled at delivering well-tested functional code in fast-paced environments. A talent for understanding and improving existing software, working directly with customers, and troubleshooting problems in live systems.

Proven ability to motivate and work effectively with other team members, making a team stronger than the sum of its parts.


Java, JUnit, Spring, Hibernate, J2EE, JavaScript, Eclipse, Transact-SQL, Shell scripting, Python, Oracle, Postgres, Sybase, MySQL, Ant, Maven, Git, Mercurial, SubVersion, CVS, Tomcat, JBoss, WebSphere, jQuery, Nirvana, Jenkins, Selenium Webdriver


March 2016 - present

Senior technical consultant helping TD Securities’ retail precious metals business grow their business by offering precious metals directly to customers for home delivery.

INTELLIWARE INC. (Toronto, Canada)

October 2013 - March 2016

Solution Architect for Canadian banking clients, working on projects in

  • Risk management with “big data”
  • Retail mortgages
  • DevOps and deployment automation

CIBC WORLD MARKETS (Toronto, Canada)

June 2012 - November 2013

Senior developer for a high-frequency, low-latency foreign exchange electronic trading system built in Java. The application interfaces with ECNs, banks, and FIX channels, and auto-hedges its positions.

Our development tools include Eclipse, Maven, Jenkins, Mercurial for source control and JUnit for automated testing.

The system runs on RedHat Linux and uses Nirvana and MQ for messaging on top of an Oracle database. The original framework for the application was sourced from Financialogix, and Wall Street is the book-of-record.

INTELLIWARE INC. (Toronto, Canada)

April 2012 - June 2012

Technical team lead for an Agile project building a portfolio optimization tool that uses MatLab, JBoss, Spring, Hibernate, and JUnit. We use Jenkins and Maven for our continuous build, and Mercurial for source control.

June 2011 - April 2012

Technical team lead for an Agile greenfield project building a VaR reporting engine for CPPIB using Armanta, JBoss, Spring, Hibernate, and JUnit. We use Jenkins and Maven for our continuous build, ControlTier for our continuous deployment, and Mercurial for source control. The system runs on a grid of 24 RedHat Linux servers and crunches more than 5Gb of data each day.

August 2009 - May 2011

Senior developer building RBC Dexia’s online banking system using Tapestry, Spring, Hibernate, IBM WebSphere and Oracle. This Agile team makes heavy use of JUnit and Selenium for automated testing and Hudson for continuous builds.


March 2009 - August 2009

Technical lead for a data aggregation and risk reporting application in the Fixed Income business that processes security, pricing and position information in near-time from multiple trading systems. Responsible for overall technical direction, development, investigating issues and designing their solutions, scheduling work, planning releases, and communicating with customers.

January 2008 - March 2009

Worked on an e-commerce electronic trading application that offers the bank’s fixed income inventory for sale through electronic trading channels such as CanDeal, Bloomberg, eSpeed etc. Initially built using J2EE, Weblogic and Swing, the system was re-designed in 2008 to run in Spring and Eclipse RCP to achieve greater stability and performance.

July 2004 - September 2007

Built a risk reporting and data aggregation engine for the fixed income business. The data aggregation component receives data in near-time from more than 30 different trading systems in the bank, blends the data into a consistent format and stores it for reporting. This component was built in WebLogic using J2EE, JMS and MQ, with Transact-SQL and Sybase on the back-end.

The reporting component was an AJAX web application that allowed front- and middle-office staff the freedom to slice and dice their risk data by whatever characteristics they chose. Show risk by country, currency, issuer, industry etc. Used server-side Java, XSLT, JSP and JavaScript.


August 2003 - July 2004

Developed a data warehousing application that processed data from dozens of trading systems in a variety of business units. The system processed the data in a grid-style architecture of JBoss servers, stored it into an Oracle database, and provided downstream systems with extracts and reports.

ST GEORGE BANK (Sydney, Australia)

August 2002 - June 2003

Built a foreign-currency account system using Java, Sybase and Tomcat. The application allowed the bank’s business customers to hold accounts in multiple currencies with all the usual features like interest payments, statements (built using Crystal Reports), taxation and tax reporting to the tax office.


September 2001 - March 2002

Built an award-winning client-facing web application that allowed customers to track their trades and positions from placement through to settlement. The system used Java, Struts, and interfaced with many back-end trading and settlement systems. The system made extensive use of internationalization features of Java, and was available in 6 different languages.

November 2000 - May 2001

Maintained two Java applets that tracked position, settlement and account information for exchange-traded derivatives. Provided 24-hour support.

ALIEN TECHNOLOGY (Sydney, Australia)

April 2000 - September 2000

Developed a community resource management system for the agribusiness industry using Java, Apache and Oracle.


December 1997 - March 2000

Maintained a legacy financial services system for unit trusts, savings bonds, life insurance and pension products using Ingres 4GL.


Diploma in IT (with distinction), NSW College of TAFE, Australia
Certificate in Object Oriented Programming (Level IV)
Certificate in Database Programming (Level IV)
Certificate in C Programming (Level IV)
Object Oriented Programming in Java - University of Sydney
Higher School Certificate (87.55%), St Patrick’s College, Sydney