Profile

My name is Ben Armston, I’m 31 years old and I live in the UK with my fiance and our two year old son. As part of the reason for the existence of this website is to promote myself, I’ll cut straight to the chase.

I work as a computer programmer writing a management appliance in Ruby. The primary interface to the appliance is web based, so I spend a lot of my time writing Ruby on Rails code, HTML, JavaScript and CSS.

The appliance manages clusters of heterogeneous nodes, providing scalable monitoring, imaging and task execution across the cluster or a part of it. I have worked on all aspects of the appliance, writing much of the web interface and designing and implementing many of the sub-systems used by it.

Skills and technologies

Ruby
I have used this language on a daily basis for over 2 years, during which time my skill level with the language has continually progressed.
Ruby on Rails
Much of the appliance is written using Ruby on Rails. We use the framework to provide both a browser based interface to the appliance and a command line interface (CLI), which communicates with the appliance through web service calls.
PHP
Some simple but frequently called functionality of the appliance is implemented in PHP in order to avoid tying up any mongrel instances. Typically this involves returning simple data structures such as could be used for updating progress bars.
Apache configuration
The small team I work in is responsible for all aspects of the appliance including Apache configuration.
HTML, XHTML and CSS
I use these technologies on a daily basis at work and also on this website.
JavaScript, JavaScript frameworks and Ajax
I have familiarity using MochiKit, Prototype, script.aculo.us and plain old JavaScript to provide a rich interface, helping users familiar with desktop software feel immediately comfortable using the appliance, and making many tasks much more streamlined than the classic page-load model would allow.

Graceful degradation of JavaScript and CSS
In order to ensure that important information, such as the fault monitoring status, is available to our users at all times, I have experience ensuring that our appliance will degrade gracefully on browsers which don’t support JavaScript or CSS such as many mobile browsers.
Databases
The appliance uses PostgreSQL for its database. In order to successfully meet developing requirements, I have gained experience evolving complex schemas, whilst ensuring that existing data is migrated safely.
Virtualization technologies
To have the development environment for the management appliance as close to the production environment as possible, we make heavy use of virtualization technologies. I have experience in configuring, maintaining and using both VMware and KVM. As well as experience migrating VMware images to KVM.
Revision control systems
I’m familiar with both SVN, which is used at my workplace, and with the distributed version control system Darcs, which I have used in my personal projects for several years.