Thomas Johnson -

Personal Traits

  • Fast learner
  • Extremely persistent
  • Good attitude
  • Strongly multidisciplinary

Core Skills

  • Programming Languages: Java, Groovy, C#, C/C++, Common Lisp, SQL, Bash, ZSH
  • Development Environments: IDEA, Eclipse, Visual Studio, Text Editor
  • Operating Systems: OSX, Linux, OpenSolaris, FreeBSD, Windows
  • Storage Technologies: ZFS, CIFS/Samba, AFP/Netatalk, XSAN, Fibre Channel, SAS
  • Version Control: Git, Subversion, Mercurial, CVS
  • Build Tools: Ant, Maven, CMake, Hudson, TeamCity
  • Frameworks: Grails, Spring 2.x, Hibernate
  • Web Servers: Apache, Jetty, Tomcat

Work Experience

180 Amsterdam - IT

Mac and Unix Specialist

2011.06 - 2011.11: Explored low-cost alternatives for storage and exchange of user data using open source tools and pre-existing hardware. Settled on a fully open source stack involving Netatalk on top of FreeBSD with a large ZFS pool for redundancy, scalability, and ease of maintenance. Storage pools were backed by an existing Fibre Channel Fabric infrastructure for initial testing, and were eventually migrated to a minimalist SAS configuration for future expandability. The system was also joined to the Active Directory domain to provide single-sign-on and regular user authentication.

2011.04 - 2011.05: Planned and executed a partially automated migration from Office 2008 to Office 2011. The core implementation revolved around creating an unattended installer for Office 2011 and wrapping it into a package that could be deployed via Casper Self Service. This configuration allowed for a very hands-off update, involving only a few moments to initiate the installation and a few minutes to start the account migration process.

2011.03 - 2011.05: Planned and executed migration of agency Macs from standalone configuration to Active Directory domain configuration. JAMF Casper Suite was used for basic joining, and command line tools were used to generate pre-execution backups prior to converting user accounts to domained accounts.

180 Amsterdam - RIOT

Backend Developer

2010.12: Designed and implemented backend and admin interface for small-scale video sharing service. The implementation was built on top of Red5 Server, which provided basic streaming functionality and Flash remoting with Spring 2. Video management and enumeration were managed through Hibernate.

2010.03 - 2010.06: Designed and implemented a proof-of-concept system for unattended publishing to a Facebook Fanpage using properties that are not programmatically configurable through the Facebook API. Core implementation was in Java/Groovy making calls to Facebook's web services and XPath/JavaScript for manipulating a virtual representation of the Facebook site in HtmlUnit.

2009.12 - 2009.01: Designed and implemented a proof-of-concept CMS-driven site using Akamai ESI to apply XSLT to parameterized content on the edge server cloud. Special care was taken to create a cacheable XSLT-based faceted product search that could also be executed on the edge cloud, reducing server load to near-zero.

Release Engineer and System Administrator

2009.04 - 2010.12: Handled integration, release packaging, and deployment of finalized code to external parties at adidas. Supported this workflow by building several scripts to handle the complexities of incremental releases without an atomic deployment infrastructure. Also managed several multi-gigabyte Subversion repositories for a development team of 5-20 with additional external agencies and contractors all working on multiple concurrent tasks with shifting release dates. Remedied issues with ongoing concurrent development by introducing per-project topic branching for each individual release, handling merges through git-svn.

2009.10: Designed and implemented a Preview management tool that allowed developers to create and update previews of in-development work without my involvement. Implementation was in C#, using ADSI for direct query and management of IIS.

Quality Assurance Lead

2009.04: Designed infrastructure for development/preview/approval process and defined associated approval requirements.

Blast Radius - Amsterdam

Quality Assurance Lead

2008.11 - 2009.03: Speedy France - Translated French documentation to extract meaningful user stories for development team, providing a basis for test cases which were later executed.
2008.08 - 2008.10: NutriSystem - Worked on-site with the client and development team, designing and executing tests and building an QuickTest Pro automated testing suite with friendly abstractions for pages with complex business logic.
2008.04 - 2008.07: ATG Solution Accelerator - Defined user stories and designed/executed associated test cases.

Blast Radius - Vancouver

Quality Assurance Analyst

2008.03 - 2008.03: Electronic Arts - Performed ad-hoc tests for Electronics Arts microsites.
2007.07 - 2008.02: Jenny Craig - Executed test suites for in-development website.
2007.02 - 2007.05: NAU - Executed test suites for e-commerce application and integrated touch-screen kiosk.

Simon Fraser University

2006.06 - 2007.01: EduPainter Research Assistant - Designed and implemented a Java-based framework for research into algorithmic painterly rendering with multiple passes and feedback for multiple resolution-independent input channels with optional OpenGL hardware-acceleration.
2005.06 - 2005.08: GStudy Research Associate - Extended user interface and Jabber backend to provide custom indicators for student status.


Simon Fraser University

2001 - 2006: B.Sc. Information Technology (Software)