Stacked Notion

April 2009 – Present

Source Code

Stacked Notion is my personal blog and portfolio site. It was originally created as an experiment into creating a content management system which uses a file backend instead of a database. The system is written in the Ruby language, using the Sinatra framework. Each page is created from a file formatted using the HAML markup language. The templates for the site are also formatted using HAML and SASS.

Key Technologies:
Ruby, Sinatra, HAML, SASS

Corporate Collaboration Suite

University of Exeter (Final year project)
November 2008 – April 2009

As part of my degree, in our final year we had to undertake a project. I choose to undertake a research and development project to understand how agile development techniques, including behaviour driven development, can be applied to web development projects.

The aim of the project was to create a tool to replace email as a collaboration tool in the workplace. It provided a wiki-type history system for tasks, files and documents.

The project revealed some intresting tools that are available. The most fascinating I found is Cucumber, a tool which takes acceptance tests written in a human readable form and executes them against the project.

Key Technologies:
Ruby on Rails, Agile Development, Behaviour Driven Development

Content Management Systems

July 2008 – October 2008

A number of freelance projects I have worked upon have been for Essential Coding, a web development company based in Canada. Two notable examples are the websites for Grand Falls-Windsor and Emerald Zone Corporation. These both required heavily customised content management systems, which I created from scratch using Ruby on Rails. The project also involved creating the HTML and CSS for the website from a Photoshop design. The Grand Falls-Windsor site required heavy use of Javascript and Google Maps API to provide an interactive town map.

Key Technologies:
Ruby On Rails, Javascript, Google Maps API, HTML, CSS

Automated Software Testing System

June 2008 – August 2008

As part of a Shell STEP placement I was given a project to create an automated software testing system. The purpose of this was to run nightly builds of all software projects that the company worked on and report any failures by email. The project consisted of a Windows Service which run on a virtual machine which would checkout code from the Subversion repository, and run the builds. A simple Windows Forms client was created which controlled this, and communication between the two was achieved using Windows Communication Foundation.

The second part of the project involved researching unit testing as at the time the company were not using it. I produced a report detailing a number of technologies for the .NET environment that I deemed suitable. I was then asked to rewrite the project to provide an example, which I did using NUnit (a unit testing framework), Moq (a mocking library supporting recent .NET features), and Castle Windsor (an inversion of control library).

Key Technologies:
C#, .NET, Windows Communication Foundation, Virtualisation, Subversion, Unit Testing, Mocking, Inversion of Control

Keepsy

Social Bookmarking Website
December 2007 – June 2008
(No longer available)

Keepsy was a social bookmarking site, which unlike other sites at the time, provided a Twitter style feed showing all of your friends bookmarks. It also provided picture previews of certain types of links, including YouTube videos and Flickr images. Images were created using a queue based system, implemented using Memcached (a memory based object caching system). It was a collaboration between James Deer and myself.

The site was taken offline during 2008 as I no longer had time to maintain it.

Key Technologies:
Ruby on Rails, Memcached, lighttpd, MySQL, Linux

Juvely

Web Based Helpdesk System
December 2006 – June 2008
(No longer available)

Juvely was a web based helpdesk system, which provided advanced features such as email integration and a live chat system. It was a collaboration between James Deer and myself.

The system was originally created using the CakePHP framework, however in 2008 it was decided to migrate to the Ruby on Rails framework. Unfortunately due to university commitments I no longer had time to maintain the site, so it was taken offline during 2008.

Key Technologies:
CakePHP, PHP, lighttpd, MySQL, Linux