20+ years of development experience, spanning the full stack, but particularly extensive on the client - since before it was cool.
Expertise in the popular technologies like:
- React
- TypeScript
- JavaScript
- SQL
- NoSQL
and some esoteric specialties including:
- D3.js, including creating Custom Visuals for Microsoft Power BI
- Microsoft Power Apps and Dynamics CRM
Work Experience
Wrote visuals for Power BI's Core Visuals team using D3.js.
Wrote client controls for Power Apps' & Dynamics CRM's Core Controls team using React.
Specialized in solving difficult ingrained bugs that had persisted for years.
Acted as the final level of emergency support for Microsoft's enterprise customers.
Took part in the coding excellence committee and devised a system to identify and remove dead code from Dynamics CRM's gargantuan code base.
Interviewed software engineering applicants.
Re-architected cibc.com's JavaScript components such as promo banners and mortgage calculators.
Prototyped a redesign of cibc.com to make it responsive.
Developed interactive credit card application forms.
Introduced automation to daily website updates, eliminating monotonous and error-prone tasks.
Wrote a Node.js + MySQL tool to identify obsolete files on the web server by converting an earlier failed attempt from O(n2) to O(n).
JavaScript Developer
contract
Newmarket, on2012 - 2013
Worked on taking the business process management software from Windows to the web, providing a modularized and customizable interface that adjusts to the platform.
Headed the PHP shop's expansion into .NET.
Managed all aspects of work from meeting with customers, to coding and supervising other developers, and maintenance and system administration of websites.
Customers included corporations like Fidelity and Citizen, and various Canadian governmental organizations.
Handled product management and lead development roles for ten ASP.NET web controls like Calendar, ToolBar, and the flagship Pop-up Menu.
Independently invented several fundamental "Web 2.0" technologies like:
- Just-in-time rendering (Dynamically creating HTML objects only when they are about to show on screen)
- DOM object recycling (Destroying the HTML objects that go off screen, to free up memory and improve performance)
- Mirrored object models (Providing both a server-side C# object model and an equivalent client-side JavaScript object model)
- etc., including some that we patented like US20060248166
Went to Cisco, GE, Sun, AIG, and DuPont to develop web portals for them.
Formal Education
Bachelor of Mathematics/Computer Science
Waterloo, on2000
Graduated Cum Laude from the advanced curriculum program.
During co-op work terms wrote SQL Windows apps and optimized an Oracle database for Hiram Walker, and architected a Lotus Notes database for Manulife Financial.