Salesforce.com Lead Member of Technical Staff 2014 to present
Full stack developer.
Front and back end development on the social interaction (Chatter feed) functionality of a large single-page application.
Extensive rewriting of feed front end functionality for performance on mobile and desktop.
Designed and implemented real time live updates to feed and comment posts.
Architected, designed, and implemented the engine for Einstein Next Best Action, a rules-based recommendation engine. The rule syntax defined a funnel-like selection on possible recommendations generated from ML or other sources. A Visual Builder was also created to model this syntax.
Designed and implemented high throughput customer visible tracing and monitoring for a B2B commerce product.
Radware Canada (formerly Strangeloop Networks) Senior Software Developer/Architect 2008 to 2014
Part of a start-up building a web acceleration appliance and high performance proxy.
Built a high performance no-copy streaming HTML parser in C#, C, and C++.
Spearheaded a project to refactor an outdated C codebase into modern, high performance event-driven Object Oriented C++.
Built and maintained a performance analytics tool similar to Google Analytics. This system reports immense amounts of data which was then analyzed for statistically significant patterns. Data was analyzed through SQL and Python-based tools.
Researched and built HTML performance enhancing treatments.
Contributed patches to the Mono open-source .NET implementation.
Created and managed build scripts, Continuous Integration systems, and source control servers (SVN/Git).
Required to be self starting, self managing, and extremely motivated.
Intrawest ULC Senior Software Developer/Architect 2003 to 2007
One of two senior developers on a team of 8 in a team lead role. Ensured code quality through mentoring and code reviewing.
One of the architects of the technical framework for Intrawest's Call Centre and Online Sales applications for a migration from classic ASP to an ASP.NET/C# solution using a domain-model database/logic tier. The framework was proven to be scalable yet adaptable and maintained integrity through extensive automated unit tests.
Led many successful projects from inception to completion.
Engaged clients and stakeholders to gather requirements and manage scope.
Helped foster the prototyping and frequent integration approach to development in order to improve quality and adherence to requirements.
Technical Environment C#, ASP.NET, C++, ASP, Visual Basic
WebCT Software Developer (Consultant) 2002 to 2003
Designed and implemented a content translation application, using a Java framework to effectuate translations using XSL stylesheets.
Self directed project that came in under budget and ahead of schedule.
Added functionality to and helped maintain a very large 3-tier online course delivery system.
Technical Environment Java, JBoss, Struts, XSL
Various Clients Software Developer (Consultant) 2002
Designed and implemented a Java server and client applet for an internet-based distributed Art Therapy system.
Worked remotely with another developer in California.
Built a 3-tier online registration system, including configuring server hardware, software, and databases.
Technical Environment Java, J2EE, Struts, Client/Server
UBC Software Practices Lab Research Systems Analyst 2001 to 2002
Designed and implemented a compiler for researching aspect oriented programming in C.
Initial prototype was written in Scheme and the production version in Java.
Managed lab systems and web pages.
Technical Environment Scheme, Java, C, Aspect Oriented Programming
Seagate Software (now SAP) Software Developer 1998 to 1999
Main tasks in the areas of performance analysis: developed benchmarking applications, analyzed results, determined methods to improve performance, and implemented changes.
Technical Environment C++, SQL, ODBC
An aspect weaver to extend C with Aspect-Oriented constructs, to explore AOP in operating system kernels. Written first in Scheme, then Java.
Publication: Using aspectC to improve the modularity of path-specific customization in operating system code" (2001).
M.Sc. Computer Science (incomplete) 2006 to 2007
Dalhousie University, Halifax, Nova Scotia
Completed all coursework, thesis unfinished.
B.Sc. Computer Science 1995 to 2001
University of British Columbia, Vancouver, BC
With a third year exchange to the University of East Anglia, Norwich, UK