Also available as a PDF

David Pritchard

Summary of Qualifications
  • Software Developer & Data Scientist with 17 years of experience
  • Problem solver with outstanding numerical and analytical skills, exceptionally fast learner
  • Expert knowledge of C++, sixteen years experience
  • Team leader with experience supporting staff development, scoping workplans, managing projects and consultants
  • Clear communicator with particularly strong visual skills
  • Experienced across full stack including Unix toolchain, UIKit and Objective C/C++, Javascript/Typescript, Node, React, Universal Windows Platform, R, GIS databases, OpenGL, much much more
  • Many areas of technical proficiency: 3D graphics, object-oriented design patterns, logit model estimation, systems programming, computer vision
Selected Work
Experience
Mental Canvas
2016 – 2021
Remote
Senior Software Developer
  • Jack-of-all-trades in very small team making an innovative 3D sketching tool largely in C++ and OpenGL ES/Metal
  • Software targets both iOS and Universal Windows Platform (UWP). Built in modern C++ with portable model-view-viewmodel user interface, with bindings to UIKit and XAML
  • Built graphics features: both 3D (camera controls, picking feature, shaders, BSP), 2D imaging (antialiased line/brush rendering, compositing, lasso tool)
  • Architected cross-platform user interface to maximize code sharing while porting from Windows to iOS. Adopted reactive design with portable viewmodels, bindings to native views.
  • Built user interface and system features: touch with direct manipulation, responsive layout, system lifecycle management (suspend/resume), crash reporting data, user telemetry
  • Led development of a web-based 3D scene viewer in Typescript / WebGL / three.js. Major features include full support for mobile web, polished 3D controls taking full advantage of touch and trackpad, and Azure backend for storage.
  • Scoped features, maintained and prioritized bug backlog, provided feedback on peers' work
  • Team resource: primary git wrangler, asynchronous/await guru
Metrolinx
2008 – 2016
Toronto, ON
Manager, Modelling & Geomatics (2015 – 2016)
Senior Advisor, Strategic Policy & Systems Planning (2010 – 2014)
  • Lead for travel demand forecasting at regional planning agency
  • Effectively a data science position: running a computationally intensive statistical model designed for ridership forecasting, then interpreting and explaining the results.
  • Improved quality control process; calibrated and automated transit assignment in EMME-based four-stage travel demand model.
  • Introduced software best practices to modelling team: scrum/agile work planning, distributed version control, regression testing
  • Managed a growing team: two staff for 2012–14, up to five staff for 2015–16. Informal mentoring role for a broader group of 10–15 staff. Duties included budgeting, hiring, performance reviews
  • Taught internal course on data visualization and communication
  • Led many studies: ridership forecasting, cost-benefit, transportation planning, rail electrification
  • Steered launch of Enterprise GIS system and new base map

 
Side Effects Software
2003 – 2006
Remote
3D Software Developer, Houdini dynamics team
  • Researched, designed and programmed physics-based cloth simulator in C++ on Linux/Windows
  • Implemented Delaunay triangulation algorithm, a complex mesh-based approach involving quad-edge data structure
  • Implemented advanced cloth/cloth collision algorithm, with challenging numerical properties due to ultra-thin geometry
Co-op Student / Developer
1996..2001
Autodesk (Alias, Discreet divisions), Side Effects Software, alt.software, Cadabra Design Libraries. 7 terms × 4 months
Education
University of Toronto
2006 – 2008
Toronto, ON
M.A.Sc. in Civil Engineering (A+)
University of British Columbia
2001 – 2003
Vancouver, BC
M.Sc. in Computer Science (92%)
University of Waterloo
1996 – 2001
Waterloo, ON
B.A.Sc. in Computer Engineering (90%)
  • Published in Computer Graphics Forum and Transportation journals