Adam Thurlow


Hi! I'm Adam Thurlow -- a 27 year old husband with cats. I masquerade as a software engineer living in Halifax, Nova Scotia. I am an ardent programmer, I have a passion for learning new technology and I do my best to evangelize the ones that I believe in.

I go by Thurloat on these interwebs. It's my twitter handle and, well heck, my everything handle. I'm very reachable via twitter, so @ me and I'll reply.

When not programming I like to explore the periphery of the industry. You'll find me drinking a cup of fine local coffee while catching up on the latest tech news, listening to podcasts and music, or eating sushi. I work at Sheepdog Labs and around those parts I'm known as a "Senior Engineer". I spend most of my time working on crazy RnD projects, re-inventing how field workers in the fortune 500 do their jobs, consulting on bleeding edge tech, and writing business applications with my awesome team.

Me, Elsewhere

Here's a collection of things I've written that don't appear on my website.

Guest Posts

  • Google App Engine Blog - Agile Paddling with App Engine

    I was asked to write a guest post on behalf of Norex as sort of a testimonial and case study of our involvement with the World Canoe Championships 2009 and Google App Engine.

  • Blog - The Olympics Of Programming 2010

  • Blog - Monkey Patching : Friend or Foe


  • Xobni Gadget Tutorial - A GitHub OpenSocial Gadget.

    While leading a project with Xobni on developing a JavaScript framework for their new gadget platform as well as a series of OpenSocial gadgets to launch with. As a kickoff to the platform launch, I wrote a four part tutorial on developing a simple gadget that works with the Xobni OpenSocial APIs, as well as GitHub's API while demonstrating best practices for the platform.

  • Dashboard Framework - Chunk Versions :: Advanced A sort of throw-it-in-your-face introduction to the concept of Chunk Versions in the Dashboard Framework (advanced concept, made easy)

Projects & Codes

These are some of the projects I'm working on or am involved in.


A flexible extension for Sentry which allows you to create issues in JIRA based on sentry events. It is capable of rendering and saving many custom fields, and will display the proper fields depending on which issue type you are trying to create.

The plugin is deployed on hosted sentry at, as well as used internally at Sheepdog daily to connect sentry to our JIRA instance.

Google Closure Linter TextMate Bundle

A TextMate Bundle created out of necessity to streamline my work flow using the excellent Closure Utilities. It encapsulates both the Linter output in a nice TextMate HTML Output window, and the fixjsstyle utility to make those quick style changes.

GSUtil (branch)

Since the release of Google Storage for Developers, I've seen the need to expand on the current tool set that Google is providing for migrating data. Including adding options for custom headers, gzipping the file contents and settings ACLS right from the copy command.

As of June 16th 2010 my code has been merged into the official GSUtil project (svn diff ) and as of July 2nd, the additional gzip functionality has passed code review and been merged into trunk.