CTO at Wayfinder
May 2014 -
Responsible for the design and implementation of a distinctive knowledge sharing tool oriented around building narrative around lists of links.
Lead our team of five full-stack developers in the process of migrating to a microservice based architecture, with a brand new front-end written in React.js. The devops side was handled by a custom Docker based tool that we used to deploy all our services.
Lead Architect at GoBe.me
May 2012 -
Responsible for design and implementation of online simulation and decision support platforms.
Making critical technology decisions about the entire system infrastructure.
Ensuring that best practices are followed, such as consistently maintained unit tests tied into continuous integration systems and release management.
Publishing our MVC development framework as an open source project to encourage the team to properly separate concerns.
Developer at DevelopmentSeed
March 2009 -
I was initially employed as a means of funding the open source Aegir project, that I had founded while working for my previous employer. I stayed on with them and transitioned into a more development support and system automation role, and eventually working with them on various client projects.
During my time with them we all made the decision to refocus our energies on Node.js, and proceeded to find new maintainers for several successful open source products we had built using Drupal. They have built many data driven sites with very complex mapping components since then, and I was involved in many of their projects during that time.
Developer at Raincity Studios
November 2007 -
Responsible for the maintenance of the hosting system I had built before being acquired.
I was also tasked with a completely rewritten replacement for the aging system, that took into account all the lessons we had learned, and would allow for us to offer more functionality to our clients.
Co-Founder of Bryght
June 2004 -
Bryght was the first Drupal services company, co-founded by myself and some other developers.
I built and maintained a PaaS at bryght.com, that allowed for turnkey deployment of Drupal sites.
To monetize this system I also built a custom ecommerce solution, with reseller capabilities, to allow for recurring payment
of the sites.
Part of my responsibilities were to push through significant improvements to the Drupal platform,
and a large portion of my time was spent working directly on the Open Source underpinnings that drove
Bryght was purchased by Raincity Studios, our biggest client, in November of 2007.
Application Developer at Obsidian Systems
May 2001 -
Obsidian was arguably the largest company in South Africa solely focused on Linux and Open Source.
My primary motivation for seeking employment with them was to be able to focus on various open source technologies, at a time when the majority of the local industry were tied to Microsoft products.
I was involved in a number of projects including multiple web portals written in PHP, a cross-platform desktop application written in Tcl/TK, and a touch screen point-of-sale system written in Python.
Co-Founder of the Graft Project, which explores what the web could become, if we extended microservice architectures into the client.
Wayfinder is a tool that allows you to collect several links on a subject into one page that can be shared with others. I first discovered the product as a user, and joined to help build a next iteration of it.
We replaced the ember front-end with a much cleaner and simpler react-based one and migrated from a monolithic architecture on the back-end, to a microservices one.
We also needed to build a custom Docker-based tool to manage the deployment of our microservices.
This allowed us to work on individual parts of the system without greatly affecting other developers with our changes.
VOIP-based multiplayer game for 7-16 players. Leverages WebRTC to work directly in a browser window without requiring any additional plugins.
We recorded many hours of narration, which is stored on the VOIP service provider’s servers, so that we can we dynamically play these
recordings to the players in the same way that you would play hold music on a PABX system.
Each player is connected to a teleconferencing system that the application controls by selectively shifting the players
between different conference rooms, and controlling whether they can hear or speak to other players based on the shared game state.
The experience is akin to being part of an interactive audio drama.
Tumblr Picture Browser. I built this demo over a few weekends to experiment with a bunch of technologies that I was curious about.
This application will scrape entire sites to mirror them locally on a CouchDB database, and provides an Angular.js-based Couch-App as the front end.
It then integrates with an ElasticSearch to allow you to build faceted cross-blog searches on various fields. I also built
some rudimentary tablet support into the application.
One of several vertically integrated products I have built while at GoBe.Me. It provides career guidance support to job seekers through it’s analysis of a variety of data sources, but most significantly it makes use of proven psychological assessments to form a more cohesive personality profile of the consumer.
The goal of the application is not to match you with any job, but rather to find a career path that is more likely to be fulfilling to you as a person and therefor improving your quality of life.
Realtime Collaborative Fridge Poetry. This demo application was built in 48 hours as our entry into the 2012 Node Knockout Hackathon.
Allows for a shared virtual fridge where all participants can re-arrange the words and have them be updated in realtime
on everybody else’s screens. You are able to create and share custom fridges based on your own sets of words.
We partnered with the Atlas Project to build out the mapping component of their election data visualization toolkit.
The system allowed for the dynamic composition of maps from hundreds of data layers that represented every local or national election in the last several decades in the United States.
The data was further broken down into dozens of demographic indicators, allowing one to trace the shifting attitudes of various cross sections of society over time.
The Global Adaptation Index™ (GAIN™), a project of the Global Adaption Institute, provides a data-driven approach to help countries and the private sector invest in adaptation to climate change and other global forces.
The Business for Good Map shows where and how businesses are improving communities and lives all over the world. The platform is a tool for businesses to connect, find partners, discover ideas, and share best practices and lessons learned.
We partnered with the Federal Education Budget Project at the New America Foundation to help better communicate how each U.S. school district compares to its surrounding districts, how it performs relative to other districts in its state, and how it compares to other schools in the country across a range of indicators. The custom data browser shows each school district on a map next to its neighbors using custom mapping tools.
Aegir is an open source project that I founded, that builds a cloud-based hosting platform for Drupal, using nothing but command-line PHP scripts and sheer determination.
I built a community around the project, and was able to successfully hand off the project to my co-maintainers when the project reached the 1.0 milestone.
- April 2011
I was deeply involved with the Drupal content management system for nearly a decade. I was responsible for the design of a series of APIs that became the very foundation of how the application evolved.
I attended nearly a dozen Drupalcon’s around the world, and I presented to large crowds of developers at eight of those conferences.