Edward Thomson

Software

I've been fortunate enough to have made a career out of writing software - here are some of the projects I've worked on.

Version Control

I've been building Version Control tools for the last 15 years:

  • I help ensure that VSTS has world-class version control offerings and that our customers are successfully using Git and TFS Version Control.

  • I developed management and monitoring tools for GitHub's network of fileservers and ported these monitoring tools to the on-premises GitHub Enterprise offerings.

  • I developed the underlying Git repository management in Visual Studio 2013 and newer. This low-level functionality is provided by the powerful libgit2 library and compatible with the core git package.

  • My Git repository merging functionality is at the heart of Team Foundation Server's pull request feature. In addition, I developed the Git protocol handling functionality for fetching and pulling over HTTP.

  • Team Explorer Everywhere is a cross-platform suite of clients for Microsoft Team Foundation Server, including a standalone client, a plug-in for the Eclipse IDE and a command line client. (Formerly Teamprise Client Suite.)

  • Remote Accelerator is a single-user version control proxy for Team Foundation Server. It is optimized for a single developer working remote from the server, and includes a clever cache seeding technology to keep the cache pre-filled.

  • Vault is a version control tool which was designed to be a compelling replacement for Visual SourceSafe. Vault provides advanced version control operations including atomic transactions and rename support while retaining a light footprint and tight support to Microsoft Visual Studio.

  • SOS Collab is a remote access front-end for Visual SourceSafe with integrated bug tracking and team collaboration tools. The collaborative features have since been moved to a separate product, Dragnet, which integrates with both SourceOffSite and Vault.

Open Source

I maintain and contribute to a number of open source projects:

  • I'm the co-maintainer of libgit2, a portable, pure C implementation of the Git repository management library. It powers Git hosting providers like GitHub, Visual Studio Team Services, and GitLab as well as client tools like Git Kraken amd Visual Studio.

    The C# bindings for libgit2, providing an easy-to-use .NET library for Git repository management.

    A simple .NET API for the Visual Studio Team Services and Team Foundation Server REST API.

    I managed the heterogenous CI build network for this open source word processor.

Scientific Computing

Before Version Control, I worked in scientific computing:

  • I helped maintain the heterogeneous network of Unix development and build servers and helped port the Mathematica 3 kernel to PowerPC Linux.

  • My then-coworker, Dan Brumleve, came up with the idea of a web-based front-end to Mathematica, and wrote the initial version of The Integrator. I rewrote it to become the second generation. It still lives, but fortunately using webMathematica instead of any code I wrote.

  • NCSA CSD was a front-end for searching the Cambridge Structural Database of organic compounds and creating molecular representations that could be visualized using MacMolecule in 3D ball-and-stick representations.

  • NCSA Waltz is a front-end to NCSA DISCO, which itself was an application for computing electron density of molecules back when you needed supercomputers to run Schroedinger's equation. Amusingly, NCSA DISCO doesn't exist anymore; this is all done by PC-GAMESS on a puny Linux box.