Projects

Practical data analysis work, each with its code on GitHub. Open a case study for the full method, findings and limitations.

Data analysis projects

Average life expectancy (years)

Developed countries79.2
Developing countries66.8
Global average, 200766.8
Global average, 202271.6
From my SQL output. Bars start at zero.

Data Analysis · SQL

World Life Expectancy — SQL Analysis

Problem
How has life expectancy changed across 193 countries between 2007 and 2022, and which factors is it linked to?
Approach
Data cleaning with window functions and self joins, followed by exploratory queries using CTEs, LAG and CASE.
Outcome
The global average rose from 66.8 to 71.6 years, with a dip in 2020. Developed countries averaged 79.2 years against 66.8 for developing countries.
  • MySQL
  • Window functions
  • CTEs
  • Self joins
  • Data cleaning

Data Analysis · Big Data

UK Crime — Big Data Analysis

Problem
Do three widely repeated claims about UK crime hold up when tested against 65 million police records?
Approach
A PySpark pipeline to filter and aggregate the records, rates per 100,000 people, a SARIMA forecast, and correlation and regression in Spark MLlib.
Outcome
Burglary fell by about half between 2011 and 2021, so the claim that it was rising did not hold. Merseyside ranked 5th, not 1st, on the weapons-offence rate used as a firearms measure.
  • Apache Spark (PySpark)
  • Azure
  • Python
  • Spark MLlib
  • SARIMA

Other work

A software project that shows the database side of my skills.

Web Application · Database

STRACK — Student Performance Tracking System

Problem
Students and lecturers need one place to follow grades, attendance and learning progress.
Approach
A React front end and PHP back end over a MySQL database, with dashboards and charts for students and lecturers.
Outcome
A working web application with performance tracking, analytics views and gamification features such as badges and leaderboards.
  • MySQL
  • PHP
  • React