James Wright



A computing professional with a Ph.D. in Computer Science and Economics and 7 years of commercial software development experience. Experience managing software development teams. Co-inventor of patent-pending distributed data synchronization protocol and distributed bandwidth allocation protocol. Currently pursuing postdoctoral research at Microsoft Research's New York City lab, with a focus on data science in the context of economic choice.

Work experience

Postdoctoral Researcher
Aug 2016 - Present
Microsoft Research, New York City

Postdoctoral research at the intersection of behavioral economics and computer science, with a focus on data science in the context of economic choice.

Senior Software Developer
Sep 2006 - Aug 2007

Developed and maintained the content-distribution component for a distributed grid storage application using multithreaded C++, boost, MySQL, TCP/IP, and SSH under Linux.

Research Developer
Feb 2005 - May 2006
Business Objects

Worked in Java, Eclipse, antlr, and a Haskell-like language. Project details are covered by a Non-Disclosure Agreement.

Director of Development
Feb 2003 - Dec 2004
Silicon Chalk

As below (Software Developer), plus:

Supervised day-to-day development of the Silicon Chalk application by a team of 4-9 developers. Prioritized and triaged feature requests for each release. Devised, tracked, and revised development schedules. A primary architect for the overall application.

Software Developer
May 2001 - Feb 2003
Silicon Chalk

Designed, implemented, and maintained C++ COM components for a component-based peer-to-peer wireless application. Wrote and debugged code for Silicon Chalk's heavily multithreaded and asynchronous architecture.

Designed and implemented Silicon Chalk's networking layer based on UDP broadcast and multicast. This layer was targeted for 802.11 wireless Ethernet adapters running under Windows XP and 2000.

Devised and implemented standards and processes for source-control usage, bug tracking, and build/release management.

Designed, implemented, and maintained internal Web-based time tracking, bug tracking, and test-case tracking systems, plus a custom build system for roughly 300 COM objects and several custom build steps. Installed and maintained CVS server on both Windows 2000 and FreeBSD.

Computer Scientist
Sep 2000 - Apr 2001
Orbital Technologies

Developed, tested, and debugged an online educational system using JSP, Java servlets, and Flash. Developed database access Java Beans for use by JSP pages of the educational system. Administered test servers running JRun and Netscape Enterprise Server. Debugged and developed new features for a media gallery user interface for the Macintosh platform using C++ and PowerPlant.

Software Designer
Jun 2000 - Aug 2000
Almare Systems

Developed a time reporting system in Java using Swing user interface library and JDBC database. Designed relational database layout for time reporting system.

Research Assistant
Jan 2000 - Jun 2000
Simon Fraser University

Designed algorithm for experimental multiple-vehicle scheduling system. Implemented the specified scheduling system in C++. Integrated scheduling system with graphical user interface. Optimized scheduling system for greater speed.

Software Engineer
(co-op term)
Jan 1999 - Aug 1999

Wrote a plug-in module in Visual C++ for Windows and CodeWarrior for Macintosh to integrate existing code with Adobe InDesign's desktop publishing API. Extensively modified existing C++ code to increase stability, add features, and improve user interface on both the Macintosh and Windows NT/98 platforms. Maintained a cross-platform code base using CVS and Visual SourceSafe.

Research Assistant
Jul 1998 - Dec 1998
Simon Fraser University

Devised efficient algorithms to solve problems in theoretical computing science, particularly in the area of Graph Theory. Gained exposure to academic/research environment.

(co-op term)
Jan 1997 - Aug 1997
Canada Safeway

Ensured that Safeway's mainframe software systems continued to meet current business needs by maintaining and updating batch and interactive report-generation programs for a very large DB2 database using COBOL and SQL. Used precompiler "Explain" reports to optimize new and existing database queries for performance.


Doctor of Philosophy
(Computer Science)
Jan 2010 - Jul 2016
University of British Columbia

Dissertation: Modeling Human Behavior in Strategic Settings.

Honorable Mention for ACM SIGecom Doctoral Dissertation Award.

Master of Science
(Computer Science)
Sep 2007 - Jan 2010
University of British Columbia

Thesis: Beyond Equilibrium: Predicting Human Behaviour in Normal Form Games.

Bachelor of Science
(Computing Science)
Sep 1995 - Jun 2000
Simon Fraser University

Was the top Computing Science student in graduating class.

Received Open Scholarship (recognizes academic excellence) and Tadeusz Specht Memorial Scholarship in Science.

Sep 1997 - Jun 1998
University of East Anglia
Norwich, England

Took third year Information Systems as exchange student at UEA.

Languages / Technologies

Commercial experience in the following:


C++, Java, SQL, Javascript, Perl, Lisp

Operating Systems

Linux, Windows 98/2000/XP, MacOS

APIs / Protocols

Boost, Win32, COM/ActiveX, TCP/IP, UDP/IP, Microsoft Installer, Java servlets


MySQL, Microsoft Access, Oracle, DB2