David Pritchard

Summary of Qualifications
  • Software developer & Data scientist with 15+ years experience
  • Problem solver with outstanding numerical and analytical skills, exceptionally fast learner
  • Clear communicator with particularly strong visual skills
  • Expert knowledge of C++, twelve years experience
  • Team leader with experience supporting staff development, scoping workplans, managing projects and consultants
  • Experienced with Unix toolchain, R, GIS, HTML+Javascript+CSS, OpenGL, Python, relational databases, much much more
  • Many areas of technical proficiency: object-oriented design, 3D graphics, logit model estimation, computer vision, design patterns
Selected Work
Experience
Mental Canvas
2016 – 2017
Remote
Senior Software Developer
  • Rapid development of an innovative 3D sketching tool in C++ and OpenGL ES
  • Jack-of-all-trades in very small team
  • Software targets Universal Windows Platform (UWP) and mobile devices like Surface tablet. Built in C++/CX with XAML model-view-viewmodel user interface, heavy use of asynchronous APIs
  • Graphics features: both 3D (camera controls, picking feature, shaders, BSP) and 2D imaging (antialiased line/brush rendering, compositing)
  • User interface and system features: touch with direct manipulation, responsive layout, system lifecycle management (suspend/resume), crash reporting data, git wrangler
  • 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
Metrolinx
2008 – 2016
Toronto, ON
Manager, Modelling & Geomatics (2015 – 2016)
Senior Advisor, Strategic Policy & Systems Planning (2010 – 2014)
Advisor, Investment Strategy & Projects (2008 – 2010)
  • 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.
  • Major improvements to travel demand modelling quality control process for an EMME-based four-stage travel demand model. Automated many key aspects of analysis.
  • Calibrated transit assignment process for four-stage model, ensuring good fit to observed route choice data
  • 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
  • Expert on wide range of transportation and urban form data
  • Led many studies: ridership forecasting, cost-benefit, transportation planning, rail electrification
  • Steered implementation of Enterprise GIS system and development of base map
  • Substantial role in $770 million Transit City Light Rail Vehicle procurement, including negotiations with Bombardier (2010)

 
TransLink / GVTA
May 2006 – Aug. 2006
Vancouver, BC
Transportation Data and Applications Development Specialist
  • Designed data model and toolchain for automated analysis of a large volume of ride check and automatic passenger count (APC) data
Side Effects Software
Fall 2003 – Spring 2006
Remote
3D Software Developer, Houdini dynamics team
  • Researched, designed and programmed physics-based cloth simulator in C++
  • 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
  • Contributed to architecture for physics simulation
Various Co-op jobs
1996..2001
Co-op student (six work terms, four months each)
  • Employers: Autodesk (Alias and Discreet divisions), Side Effects Software, alt.software, Cadabra Design Libraries; also two research assistantships (RAs)
  • Most jobs/RAs in computer graphics on Irix/Linux, working on 3D tools for animated films. Examples: early 3D texture painting tool (StudioPaint), very early research into real-time shadows, gold release of Maya 1.0 animation package
  • Other jobs/RAs: multithreaded video capture driver on BeOS; visualization tools for semiconductor industry; Java bytecode interpreter
  • Highlight achievements: fixed fundamental error/leak in custom memory allocator; doubled speed of scripting language; refactored curve editing GUI and vastly improved usability
Volunteer Activity
 
Toronto, ON
http://davidpritchard.org/maps/tortransit.html
  • Built a web-based transit map with very early Google Maps / Javascript / AJAX (2005). Updated to include geotransformed raster transit maps using open source mapping scripts (2011, 2016)
  • Released shareware Tetris game developed in C (1993)

 
Education
University of Toronto
2006 – 2008
Toronto, ON
M.A.Sc. in Civil Engineering
University of British Columbia
2001 – 2003
Vancouver, BC
M.Sc. in Computer Science
University of Waterloo
1996 – 2001
Waterloo, ON
B.A.Sc. in Computer Engineering
  • Overall averages of A+, 92%, 90% for each degree
  • Research project #1: capturing 3D cloth shape from stereo video
  • Research project #2: agent-based simulation effort focused on synthesis of microsimulation agents from census and travel survey data with log-linear models; implemented in R and PostgreSQL
  • Two peer-reviewed papers published in Computer Graphics Forum (2003), Transportation (2012)
Awards Received
  • Ontario graduate scholarship of $30,000 (2006)
  • NSERC graduate scholarship of $32,000 (2001)
  • Gold medallist in Canadian Computing Competition (1996)
  • Top 1% in Canada in Descartes mathematics contest (1996)
Languages

French: excellent comprehension, good spoken; some written