My work experience and education that I do a poor job of keeping up-to-date.

You’ll probably want to start with my GitHub profile. But please note that a lot of what I do isn’t in public repos.

[email protected]
Toronto, Canada

## Major Shipped Projects

##### Censorship Circumvention (2009-present)

Part of a team of four devs responsible for all aspects of design and development. The circumvention system allows users in non-open-internet regions (China, Iran, etc.) to get access to censored sites. Our customers tend to be international news agencies that need to provide access to their sites in the targeted regions. This is a very hostile environment (there are constant blockages and possibility of attacks) that has required both quick responses to problems and long term planning for more creative approaches. The service is used by at least tens of thousands of users in a dozen countries and a dozen languages.

##### Storage Encryption Key Manager (2004-2009)

Co-wrote the specification and design for an enterprise storage key management system. This included high-availability and clustering, high-assurance data destruction, information lifecycle management, standards-based interfaces, and all other aspects of the system. I was also part of the team that developed and delivered the final system (dev team size varied between 3 and 6). The IP was purchased by Sun Microsystems Inc., and I was hired along with it. While at Sun, I (along with a few others on the team) received a Sun Award of Excellence for our work. By the time I left Sun, the Key Manager was selling well and was driving even larger sales of encrypting tape drives. The product seems to continue to be offered by Oracle (which bought Sun).

##### CipherShare (2001-present)

Member of a two-person team that designed, developed, and delivered one of the first (and best!) secure document sharing and collaboration applications. We upgraded through three versions: going from very simple, small-document-only architecture, to having chat and messaging, handling huge files, and enabling key recovery. CipherShare is used by such companies as MDS Sciex (scientific equipment) and the Plant Machinery Division of Bechtel (a defence contractor). Development and sales continue under Proven Security Solutions Inc.

## Skills

(All of these vary in degree and freshness, but I’ve used all of them in a project at some point.)

##### Programming languages

Python, C/C++, JavaScript (+HTML+CSS), PHP, Java, SQL (and stored procedure stuff like PL/pgSQL). Also some: Objective-C, shell scripts, C#.

##### Tools

IDEs: VSCode, MSVC++, Android Studio, Xcode, Netbeans, Eclipse.

Source control: Git, Mercurial, Subversion, Perforce, SourceSafe.

Issue tracking: GitHub, Bitbucket, Kiln, Trac, LaunchPad, FogBugz, TestTrack, Bug Tracker, VersionOne.

Miscellaneous: DialogBlocks, VirtualBox, VMWare.

##### Databases

PostgreSQL, MySQL, MS SQL Server.

##### OSes

Windows, Android, Linux, Mac, Solaris, iOS.

##### In general

If I don’t already know it, I can get up to speed pretty quickly.

## Experience

##### 2009 - present: Software Developer @ Psiphon Inc.

Provides censorship circumvention services to users in regions such as China, Iran, Burma, etc.

  • On a team of 4 developers responsible for all design and development of existing and new products, and for dealing with all technical issues that arise (which is pretty often in this line of business).
  • Led a small (1-3) team to develop an internal tool for tracking assets related to running the service.
##### 2006 - present: Co-Founder/Developer @ Proven Security Solutions Inc.

My side-gig company. Founded by me and two other CipherShare (see below) originators to continue development and sales of product. Also provides consulting and contracting work, specializing in systems security.

  • Involved in strategic and technical direction decisions.
  • Architectural, design, and development work.
  • Feel free to try out the CipherShare demo.
##### 2006 - 2009: Software Developer @ Sun Microsystems Inc.

After Kasten Chase (below) went bankrupt, the key management IP was sold to Sun Microsystems, conditional on me and another developer going to work for them.

  • Continued development on storage key manager (Sun KMS). Extensive redesign to allow interoperability with Sun systems.
  • On a team of 12 developers and testers. Accelerated development schedule. Many external requirements, from customers, standards, and internal sources.
  • Received an Award of Excellence for my work on the key manager (along with a few others on the team).
##### 2003 - 2006: Software Developer @ Kasten Chase Applied Research

Medium-sized (~70) company specializing in security software and hardware.

  • One of the two designers and 2-4 developers of the Keystone enterprise key management appliance. Responsibilities in all areas of the product (database, business logic, UI, etc.) and in all development stages (design, development, debugging).
  • One of the two designers and developers of the CipherShare secure document sharing and collaboration client/server application. Jointly responsible for all client-side code – business logic, user interface, etc.
##### 2001 - 2003: Software Developer @ CipherShare Systems Inc.

Company created by Apostrophe Software (below) to develop commercial product – a secure document sharing and collaboration client/server application. Acquired by Kasten Chase in 2003.

  • Member of a two-person design and development team. Integral part of all design, review, development, and debug efforts.
##### 1997 - 2001: Software Developer @ Apostrophe Software

Small bespoke software company specializing in client/server database-driven projects. Started as a summer student, began full-time in 2000.

  • Member of a very small (3-7 people) design and development team.
  • Worked on a variety of projects, some existing, some new, including:
  • A passport issuing system subcontract for Canadian Bank Note Co. Ltd.; used in Burkina Faso, Africa. Wrote the image capture, processing, and printing component.
  • A CGI back-end for a drug trial website.
##### 1998 - 1999: Software Developer @ Dai Nippon Printing (Tokyo)

Six month placement through University of Toronto’s Co-op Japan Program.

  • Designed and developed client (applet)/server system for measuring web-page load times for online library.

## Education

##### University of Toronto

Graduated 2001, H.B.Sc., with distinction; Computer Science specialist, Philosophy major.

## Other Interests

  • Parenting. I have a little boy who is a joyous and joyful.
  • Video games. Big variety of genres – mostly stuff that’s both interesting and excellent. I think games have the potential to be the greatest art form ever. No, really.
  • Reading. Lots of sci-fi and fantasy; a fair bit of non-fiction; whatever my book club makes me read. Comics, too.
  • Movies and TV.
  • Sailing and scuba diving. I haven’t done a lot of either yet, but I really enjoy them so far.