Curriculum Vitae


Contents


Education

Loughborough University

Computer Science BSc; Second Class Honours, Upper Division 2014 - 2017

  • Part A (First Year):
  • Essential Skills for Computing
  • Introduction to Algorithms
  • Logic and Functional Programming
  • Programming for the WWW
  • Server Side Programming
  • Computer Systems
  • Databases
  • Mathematics for Computer Science
  • Object Oriented Programming and Algorithms
  • Part B (Second Year):
  • Requirements Engineering
  • Formal Languages and Theory of Computation
  • AI Methods
  • Computer Graphics
  • Formal Specification
  • Mobile Application Development
  • Professional Issues in Computing
  • Operating Systems Networks and the Internet 1 & 2
  • Team Projects
  • Professional Training Preparation
  • Part C (Third Year):
  • Robotics
  • Enterprise Resource Planning Systems
  • Algorithm Analysis
  • Human-Computer Interaction
  • Data Mining
  • Cryptography and Network Security
  • Computer Vision
  • Computer Animation
  • Computer Science Project
  • Software Project Management

Ashcroft Technology Academy

GCSE & A level 2007 - 2014

  • A2:
  • Mathematics, B
  • Physics, C
  • Computer Science, B
  • AS:
  • Biology, D
  • BTEC:
  • level 2 Engineering, Distinction
  • OCR ICT, Merit
  • GCSE:
  • Maths Applications, A*
  • Mathematical Methods, A*
  • Science, A
  • Additional Science, A*
  • English Language, B
  • English Literature, B
  • Citizenship (1/2), A
  • R.S (1/2), A
  • Geography, B
  • Music, C

Technical Skills

Familiar with:

  • Programming Languages:
  • C
  • C++
  • Java
  • Haskell
  • HTML
  • CSS
  • JavaScript (JQuery, React)
  • PHP
  • Matlab
  • Visual Basic.net
  • Python (Numpy, SciPy, Matplotlib, Selenium, TensorFlow)
  • R (Tidyverse, ggplot)
  • SQL
  • Source Control Systems:
  • TortoiseHg (Mercurial)
  • Git
  • ERP Systems:
  • SAP
  • Data Mining Software:
  • WEKA
  • R Studio
  • TensorFlow
  • CAD Systems:
  • PRO Desktop
  • 2D Design
  • Operating Systems:
  • Windows (XP to Windows 10)
  • Mac OS
  • Linux (Ubuntu, Raspbian)
  • General Software:
  • Microsoft Office (Word, Excel, PowerPoint etc.)
  • Miscellanious:
  • Docker
  • BackupPC
  • Nagios
  • Google Colaboratory

Work Experience

Medical Physics and Bio-engineering, UCLH

Part-time Software Developer Current

Python / VTK Medical Imaging: While searching for full time work I’ve volunteered to work on a medical imaging project at UCLH. The task is to visualise the difference between two 3D surface scans. The 3D surfaces are represented as a set of vertices (3D points in space) which are triangulated into cells. The software I have developed finds the centre of each cell on one scan and then finds the distance to the closest point to this on the second scan. This distance is then mapped to a colour table and the cell is coloured accordingly. The purpose of this software is to visualise differences, in this case breast growth, between the two scans. The project has been written in Python and uses VTK (Visualisation ToolKit) for display and interaction.

3DAM LTD

Website Designer / Builder Ongoing

Wix Website Builder: Assisting in the design and creation of an ecommerce website for a small business, during the COVID19 lockdown. Website is being built using the Wix website builder, and includes usage of the Wix Stores, Wix Bookings and Wix Blog plugins. This has tested my ability to listen to client requirements, and translate them into a functional product, while working within the limitations of the Wix website building tool.

Physics, Royal Marsden Hospital

Part-time Back-end / Server Engineer Jun 2020 - Aug 2020

Back-End: Work at Royal Marsden Hospital involves assisting the physics department by completing small projects during the increased workload of the COVID-19 Pandemic.

Nagios: In one project I set up a Raspberry Pi with Nagios server monitoring software. The system was then tested to see if it was working as intended.

BackupPC / Docker: In another project I set up a new Ubuntu server with a ZFS file system, with a RAIDZ2 (RAID 6) Zpool. I then installed and configured BackupPC using Docker. After it was set up and working, I had to queue the various different backups for it to complete by entering server details, the files to exclude, as well as a backup schedule, and then tested to see if it was working as intended.

Medical Physics and Bio-engineering, UCLH

Junior Clinical Scientist: Bioinformatics (Physical Sciences) Sep 2018 - Oct 2019

Full Stack Development: Involved working on small development projects for the department. One example was a tool developed with PHP and MySQL, that was designed to allow users to track different types of expenses across different budgets. These small scale projects exposed me to multiple programming languages during my time there, and involved translating user requirements into working projects.

Scientific Computing: Being based in a physics department resulted in many projects having a scientific basis. One such project involved assisting the hospital's radiation protection team, by creating a tool to help visualise radiation intensity in a given floor plan, via a “heat map” type overlay. This involved working with other members of the department who had other areas of expertise and educational backgrounds, gave me experience of working as part of a multidisciplinary team.

Data Science / Engineering: Work at UCLH involved some rotations out of my base department. One rotation was at HCA Healthcare UK, working with the informatics team. Work involved using R with packages like Tidyverse and ggplot to extract information from HCA’s patient data, and then to produce reports on my findings, as well as working on and improving their existing ETL pipelines. One of these projects was to look into how quickly nurses respond to calls on the different floors, and on different shifts. Another involved finding duplicate patient records within the database, and identifying which departments were submitting the duplicates.

Ian Roscoe Garden Services LTD

Summer job Jun 2016 - Aug 2016

Gardener: Worked as a gardener for a company based in Richmond. This involved assisting one of the company owners and helping her perform her various day to day jobs for clients. Performed physically tiring tasks outside in varying weather conditions. Had to learn to perform tasks quickly and efficiently to maximise the number of clients seen in a day.

Mermaid theatre

International Magic Convention Gala Show Nov 2013

Stagehand: Worked backstage at international magic show. Had to learn various stage cues and instructions at short notice, and carry them out as part of a small team. Carried out important tasks effectively with a team whilst under pressure. Was able to work quickly to carry out tasks that needed to be finished within a time limit.

Medical Physics and Bio-engineering, UCLH

Year 12 Work Experience 2013

Raspberry Pi & Python: Was tasked with setting up a Raspberry Pi, and producing a python program to display a timetable. This involved me learning to code Python, as well as use a Raspberry Pi computer. Prior to this task being set I had only programmed in Visual Basic.net. Demonstrated ability to work with unfamiliar hardware and software, as well as learn a new programming language.

Medical Physics and Bio-engineering, UCLH

Year 10 Work Experience 2011

Cranioplasty plates: Took part in a full demonstration of how cranioplasty plates were made. Included use of bespoke CAD software as well as various workshop machines and tools. Demonstrated ability to use skills and knowledge learned in engineering class, outside of the school environment. Followed strict health and safety rules.

Repairing Keyboards: The bulk of my time spent at UCLH was spent repairing hospital keyboards. These keyboards were designed to be covered by a flat silicon surface to allow them to be easily cleaned. Repair process involved testing to see which part of the keyboard was broken, disassembling the keyboard, setting the broken components aside and reassembling the working parts into full keyboards. Demonstrated ability to quickly learn and perform a task.


Projects

HCA Healthcare call bell response audit:

London bridge hospital, which is run by HCA Healthcare UK, has a call bell system in place for patients to request assistance from staff. The aim of the call bells is to reduce the chance of an accident that may be caused by a patient trying to stand up and get something by themselves.

For this project I was given a csv file containing data on a month's worth of call bells (over 8000 entries), and was tasked with seeing what information I could extract. The csv contained columns for: the area of the hospital, the room, the time of the call, the date of the call, and the response time.

Using R Studio, with Tidyverse and ggplot, I produced a report containing several plots. This included: a set of ecdf plots, indicating the performance against KPI (response time of <120 seconds), for each individual floor of the hospital; a box plot indicating the response time distribution by shift; a box plot and bar plot indicating call volume against response time; the distribution of calls over 5 mins, for every floor as well as the hospital as a whole; and a table of summary statistics for every floor and the hospital as a whole, including mean, median and range of the call durations, as well as the busiest hours of each floor (which hour has the highest call volume). Demonstrated ability to find and visualise relevant and useful information, as well as learn an unfamiliar programming language for the purposes of statistical computing.

Used Git version control system to manage updates and changes.

Radiation Protection Project:

At UCLH I assisted in the development of a radiation protection project that assisted physicists in determining the appropriate level of radiation shielding in the various walls and doors of a scanner room. Typically these equations are done by hand and the physicist must use a 2D floor plan and knowledge of where the radiation sources are within the room to calculate the necessary level of shielding in each door and wall, to prevent unnecessary exposure. Where these calculations become complex is when you factor in that the intensity and location of a source of radiation will change, in addition to the various doors being opened and closed, throughout the scanning process.

This project aimed to assist in this process by allowing the user to generate a digital 2D floor plan, set the various levels of shielding within each wall and door of the room, and then place radiation sources of varying intensities, at different locations within the room. The program would then generate an overlay, displaying the level of radiation intensity at each point in the room by applying a colour gradient to it. This produced a heatmap showing the levels of radiation in all the rooms at all points.

This was written in Java, and demonstrated my ability to work within a multidisciplinary environment.

Used Git version control system to manage updates and changes.

My final year project:

Tasked with writing a program to visualise Conway’s Game of Life and other Cellular Automata. Designed for usage at departmental recruitment events. Program had to be visually appealing and enable users to better understand cellular automata.

Finished program was written in Java to facilitate usage across multiple operating systems. Program features allowed the user to pause, play, adjust speed, and manually go back and forward through each individual generation in the simulation. Other features allowed the user to visualise the changes that occurred in between generations and keep track of the number of living and dead cells. Simulations could be saved and loaded and the rules to Conway's Game of Life were not hard coded and could be changed in order to simulate other lifelike cellular automata. Demonstrated ability to learn an unfamiliar programming language, as well as program a functional animation engine.

Used TortoiseHg source control system to manage updates and changes.

A level project:

Was a continuation of my year 12 work experience at UCLH. The task was to complete a timetable coded in python and run on a Raspberry Pi computer. Program appointment information from a text file and then displayed them on screen in order of time. I made use of the pygame library to display text onto a screen and read from and write to a text file to get and store appointment information.

Required me to learn an, at the time, unfamiliar programming language and hardware.


Additional Information

Personal Profile and Skills: Both throughout my time in education and at work I have proven I work well in a team and on my own. I have always been good at using computers, both for completing work and playing games at home and with my friends. I enjoy playing games on both tabletop as well as the computer, I frequently organise whole days with my friends dedicated to playing board games. I've been playing classical guitar since primary school, and also enjoy listening to music. In recent years I have had the opportunity to enjoy travel to places such as Costa Rica, Azerbaijan, Kazakhstan, and Uzbekistan.

  • Interests:
  • Classical Guitar
  • Tabletop Gaming
  • Computer Gaming
  • Programming

References: Available upon request.


Links & Contact Info

Github:

github.com/JosephRuff

LinkedIn:

linkedin.com/in/joseph-ruff-34a59b188

Contact Information:

For full contact information, please download the pdf version of my CV.

pdf Download