Skip to content

Portfolio

Software Development

Parent Progress View

Parent Progress View documents page

I designed, built and implemented a bespoke solution for education environments that allows parents to view reports of their child’s progress, as well as stay informed about various metrics on their attendance, achievement and behaviour. Parent Progress View is a modular system, consisting of:

  • A Moodle module to provide a modern frontend for the system.
  • A flexible, “light” data warehouse, known as The Hub, based on WordPress custom post types with custom fields to support WYSIWYG data manipulation by less technical users.
  • A custom WordPress plugin to support the provisioning of new parent users and to provide a user interface for approving account requests.
  • A REST-based interface, extending the WP REST API, for querying The Hub from the aforementioned Parent Progress View frontend (with scope for use by future applications).
  • A PowerShell-based data import suite to extract data from the proprietary Management Information System.

Additionally, I continue to work on support for this custom Moodle frontend within the official Moodle mobile app.

DfontSplitter

DfontSplitter icon

I have developed an application for Windows (written in .NET/C#) and OS X (written in Swift) called DfontSplitter. DfontSplitter is a graphical wrapper around tools called fondu and FontForge that are able to extract TrueType font information from the old-school Dfont and Font Suitcase Macintosh formats.

This area continues to be of interest, and I look forward to opportunities in the future to continue learning more!

Devops and Automation

Working closely with Van Patten Media, I have helped develop vpmframe-wp, an opinionated framework for developing and deploying WordPress websites. A significant part of my role in this project is to consolidate the server configuration of Van Patten Media’s web servers into a Puppet manifest, so we are able to spin up a new production web server on practically any VPS provider in 20 minutes or less, complete with working Amazon S3 backups out of the box.

Once a web server is running, the Capistrano-based deployment system that forms part of vpmframe-wp can automatically deploy the website project (in either staging or production modes) to a web server meeting our specification. This dramatically reduces the time taken to ‘go live’ and significantly reduces the likelihood of human configuration mistakes which might cause downtime of the web server process!

In addition, a slightly modified version of this same Puppet configuration is used during the development of every project. This takes the form of a Vagrant base box. During the development phase of the project, work can be done inside this site-specific and ephemeral Vagrant virtual machine, where the behaviour of the system will be identical to when deployed on a live server. This allows the safe, speedy resolution of issues that may otherwise occur only in the production environment as well as the freedom to destroy the VM and start over, without having to manually reconfigure anything, should a ‘fresh start’ be desired.

Systems Administration

Van Patten Media

I have had significant experience in systems administration, in both the Windows and Linux environments. As well as running the server that powers this site, I am responsible for the day-to-day administration of Van Patten Media’s numerous virtual servers that power its clients’ websites. Van Patten Media’s infrastructure comprises not just a standard LAMP stack, but the Nginx web server, the Varnish HTTP cache to deliver the maximum performance possible, and an automated backup system capable of backing up to multiple destinations, including Amazon S3.

Windows-Noob

Taking charge of security and maintenance of the server that runs the popular Windows-Noob site, one of the leading unofficial communities supporting Microsoft System Center Configuration Manager, has also presented many opportunities for me to gain valuable experience in dealing with the security challenges on such a popular website. The Configuration Manager guides on Windows-Noob have been viewed more than 700,000 times.

Moodle

In my day job, I am responsible for the server that runs a Moodle installation used by over 600 users, as well as a public-facing WordPress website. Beyond these web servers, I take an active role in the operations of the Windows Server 2012 R2-based network which helps run this organisation, with a particular interest and focus on security, backup and our use of the Microsoft System Center suite of products for monitoring, issue resolution and automation.

Web Development

My interest in web development goes back a very long way to when I first started experimenting with HTML back in the days of Windows 98 and FrontPage Express! I have a significant background in PHP, MySQL/MariaDB development, but also have a strong command of HTML5, CSS3 (including CSS pre-processors such as SASS) and JavaScript (including jQuery).

Total Slider

I have spent more than three and a half years working closely with Van Patten Media on web development projects for clients, mostly in the WordPress environment, with which I now have much experience. As well as working on these client projects, this relationship has also led to the publishing of several open source projects, including a WYSIWYG ‘slider plugin’ for WordPress called Total Slider, which has been downloaded more than 21,000 times.