Jon Seager


I am a graduate of Computer Science with a First Class (Hons) degree from the School of Electronics and Computer Science (Uni. Southampton).

I have a big interest in Info Security. As such I spent my time off from university in the summer 2012 working for MWR InfoSecurity as a Ruby on Rails developer, writing secure internal web applications. I have worked at a number of other technical firms. I worked for Synetrix over summer 2010 & 2011 as an engineer supporting the WAN that provides internet and related services to almost every school in London & the London Grid for Learning. This enabled me to gain experience working with a large network and acquire some useful skills working with Juniper network equipment.

An outline CV can be downloaded here. Full CV available on request

Recent Work

During my time at university I have had exposure to a vast number of different programming languages and technologies. More details can be found below, but some of my projects include:

Alongside my summer work, I try to keep up a bit of other work throughout my academic year on a consultancy basis. A couple of years ago I redesigned the RVWL website. I have also done some work writing Rails apps for small businesses.

Projects In Detail

Non-negative Matrix Factorization for Gene Expression Data

A recent university assignment saw the development and testing of a Non-negative Matrix Factorization (NMF) algorithm and the utilisation of Principal Component Analysis to identify clustering amongst gene expression data collected using Affymetrix micro-arrays. The report finds that NMF yields stable clustering on the datasets, making it a suitable tool for classfying central nervous system tumors and types of Leukhemia.

The algorithm was tested, alongside the k-nearest neighbor algorithm on the ALL/AML Leukhemia dataset, along with the CNS Dataset used by Pomeroy.

The report can be found here.

Image Contour Extraction

Another university assignment involving the use of MATLAB. This assignment used two different dynamic programming approaches to extract contours of either high or low intensity from a given image. A more basic algorithm was implemented first, followed by a more complex algorithm using a second-order energy function to ensure the contours identified were as smooth as posible.

The report, along with code listings and some example results can be seen here

OpenGL Project

This was a project completed for the module Principles of Computer Graphics. The work was completed using C++ with OpenGL (Core mode only). The task was to create a space themed scene and provide a first person style camera and controls for navigating the scene. Alongside this there had to be an automated tour of the scene.

To achieve this, I started by implementing a basic Camera class, providing methods for basic forward/backward/side to side movement along with pitch/elevation/yaw controls. I then implemented a Model class that could read Wavefront OBJ files and render them from their own Vertex Array Objects. The model class also allowed the application of textures and all models could be manipulated in world space using simple methods provided by the class.

Take a look at my code over on Bitbucket

MWR Messages

During my time at MWR Info Security I implemented a series of Ruby on Rails web applications used for passing messages around the organization. I worked as part of a small team of 3 interns. The first application was MWR Events, an app with functionality similar to that of Facebook Events. Used for displaying information about upcoming conferences, allowing people to indicate their attendance and provide details of any talks/presentations they were giving.

This app was integrated into MWR Messages, which was a Twitter like application for posting short messages, with the option to post longer, formatted messages using Textile markup. It allowed users to follow other users and interesting tags. The system ran Resque in the back end, combined with Faye to deliver real-time notifications to users as they browsed the site.

ANTLR Cross-Compiler

This project aimed to create a Java cross compiler for a made up language similar to PASCAL. By utilising the ANTLR framework to create a grammar for parsing and lexical analysis, I was able to pass an Abstract Syntax Tree to Java in order to perform contextual analysis and code generation.

The code can be found on Bitbucket


Details Coming Soon...