Also available as a PDF

David Pritchard

Summary of Qualifications
  • Software Developer & Data Scientist with 16 years of experience
  • Problem solver with outstanding numerical and analytical skills, exceptionally fast learner
  • Expert knowledge of C++, thirteen years experience
  • Team leader with experience supporting staff development, scoping workplans, managing projects and consultants
  • Clear communicator with particularly strong visual skills
  • Experienced with Windows APIs, Unix toolchain, R, GIS, HTML+Javascript+CSS, OpenGL, much much more
  • Many areas of technical proficiency: 3D graphics, object-oriented design, logit model estimation, computer vision, design patterns
Selected Work
Mental Canvas
2016 – 2018
Senior Software Developer
  • Jack-of-all-trades in very small team making an innovative 3D sketching tool in C++ and OpenGL ES
  • Software targets Universal Windows Platform (UWP) on mobile devices like Surface tablet. Built in C++/CX with XAML model-view-viewmodel user interface, heavily asynchronous
  • Built graphics features: both 3D (camera controls, picking feature, shaders, BSP), 2D imaging (antialiased line/brush rendering, compositing, lasso tool)
  • 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 Javascript / WebGL / three.js. Major features include full support for iOS/Android web browsers, touch-based 3D controls, live-streaming content from HTTP server. Lightweight back-end in PHP & Python
  • Scoped features, maintained and prioritized bug backlog, provided feedback on peers' work
  • Team resource: primary git wrangler, asynchronous/await guru
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, 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
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 topological data structure
  • Implemented advanced cloth/cloth collision prevention algorithm, with challenging numerical properties due to ultra-thin geometry
Co-op Student / Developer
Autodesk (Alias, Discreet divisions), Side Effects Software,, Cadabra Design Libraries. 7 terms × 4 months
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