Software Development

This page is a list of the working practices and tools I have some experience or interest in and am still willing to admit to.

Philosophy & Methods

Computational Science via Agile & Lean, experience of Agile Modelling (AM) & Scrum.

Design, craft and engineering by study, discussion and practice.

White-boards, sticky-notes, sticky-tape, post-cards and magnets.

Operating Systems

OpenVMS on VAX & Alpha


  • Ubuntu (including in the ‘Windows Subsystem for Linux’ on Windows 10)
  • Debian
  • Raspberry Pi OS  (on a Pi 2)
  • Google Android





  • Algol 68R
  • DCL Digital Command Language
  • Linux Shell : bash (apprentice level)

Current choice of weapons:

Text Formatting

  • Markup languages for documents
  • MarkDown for notes


  • UML
  • Graphviz dot

Functional Programming

  • a Lisp: Clojure (because on the JVM, the Java Virtual Machine
    – it might have been a Scheme or Common Lisp.)
  • I’m interested in trying a ‘pure’ functional language like Haskell later

Imperative Programming

  • Python
  • Clojure’s dependency on JVM is making me rethink my decision not to use Java


  • HTML5, CSS3 & JavaScript


Known Unknowns

Things I’ve heard of but don’t feel I understand enough:

Virtualisation & containers:
VMware, Docker.
Virtual Box, VBox?
Ubuntu lxc.


Laravel Forge to roll out a Linux server
Vagrant (vagrantfile boots up a web & DB VM. Problem: hardly any Vagrant lxc boxes.

IT automation (devops)

unix/linux – make

Ansible (playbooks – installs things necessary to run an app) uses YAML

Chef, Puppet, Salt
‘git clone’, ‘vagrant up’ then ‘vagrant provision’. Deployment Heroku.
Composer/Bower/init scripts.
Jenkins – continuous integration

Java – Apache Ant with Ivy, Apache Maven, Gradle (default for Android)
used by:Clojure Leiningen
“task runner + artifact management”
“Maven meets Ant, without the pain”
Python easy_install
Ruby (on or off Rails). Rubygems, bundler, Jeweler
PHP  – Pear
perl – CPAN

Leiningen- for Clojure


JavaScript & the web

GulpJS – like Ant or Maven for Java but JS instead of XML

npm – JavaScript package manager for Node.js modules

AngularJS by Google. MVC framework client presentation
Backbone MVC framework
Elm – functional language to web browser GUI
Ember framework for ambitious web applications
Meteor Webapp framework

JavaScript libraries

NodeJS server-side JavaScript run-time. Built on Chrome’s V8 JavaScript engine.

JavaScript tools:

Reveal.js HTML5 slides., free for public decks.
NodeBB forum software.
Epoch D3.js data visualisation.