Profile photo

James Ball

Studying Computing @ ICL

About Me

I'm a third-year student studying Computing (with AI and ML) at Imperial College London, currently on track to receive a high first, having landed on the Dean's list in 2nd and 3rd year with an overall percentage of 85.5%.

The emerging role AI plays within the industry is one of my main interests, particularly in Reinforcement Learning. I am looking to improve my Snake AI project by implementing a solution using RL instead of a genetic algorithm.

Experimenting with programming and music is also an interest of mine, the best example being osci-renderosci-render; a way of visualising 3D objects on an oscilloscope using audio.


Proficient in

  • Java
  • Python
  • TypeScript
  • Apache Spark
  • C
  • Scala
  • Regex
  • Linux
  • Git
  • Perl

Exposed to

  • C++
  • Dart / Flutter
  • C#
  • JavaScript
  • Kotlin
  • PHP
  • Haskell


osci-render animation

Won 'Best Newcomer's Hack' at IC Hack 20


Cross-platform, open-source software used by 100s of music + visual artists for making music by drawing images on an oscilloscope using audio.

Can render 3D objects, images, and text on an oscilloscope.

Designed to be extensible, allowing artists to synthesize their own audio + visuals with Lua.

Also created osci-sample, a way of sharing and visualising sounds made with osci-render.


Won 'Ocado Technology Group Project Prize'


KidneyCaliper is an automated deep-learning-based workflow for kidney pathologists.

  • Kidney biopsy images automatically annotated and analysed
  • Pathologist's workflow sped-up dramatically
  • Provides valuable statistics that were previously infeasible to obtain
  • Researchers given more insights into which factors make a difference in donor kidney survivability

Developed as a group of 6 for our 3rd year group project.


3rd highest ranked project in second-year


Mobile app that facilitates the physical wellbeing and safety of 18-25 year olds during and after nights out.

  • Track locations of friends
  • Panic button to send SOS to friends when in danger
  • Fake phone call to calm you

Frontend written in Dart / Flutter with backend written in Python / Flask.

Snake AI

Achieved full marks in A-Level coursework

Snake AI

An AI that can learn to play snake perfectly using a neural network and a genetic algorithm.

I wrote this in Java completely from scratch to aid my understanding of neural networks.


Won 'Best use of the Web' at IC Hack 21


PlayTogether allows musicians to collaborate by playing along with other band members as a backing track, leading to more cohesive music-making.

Developed as part of IC Hello World Hack 21.

Other Projects


We created a compiler using Scala for a simple language called WACC, a Turing-complete variant on the While family of languages.

We also added extensions including:

  • 'Mark and Sweep' garbage collector
  • Re-implementation of Snake AI in WACC


Various features were built upon a bare-bones operating system in C called Pintos, including:

  • Running and loading user programs
  • Advanced thread scheduling
  • Virtual memory
  • Memory mapped files


Computer Scientist

Netcraft • Internship

Jun 2020 - Sep 2020

Netcraft specialises in finding and taking down websites that impersonate other companies. They currently perform takedowns for three of the ten most phished companies on the internet.

Perl was the language I used the most, along with JavaScript, MySQL, and other technologies such as Puppet.

Working as part of a research team, I uncovered new scams and phishing sites including Microsoft support call and gift card scams.

In-depth knowledge of the scams was required to not only find the source of the scams, but also to produce automated emails convincing web hosters and registrars to take-down the sites.

Regex and Bash were skills that were heavily developed throughout my time at Netcraft; Regex is used all over Netcraft for classifying malicious sites.

My communicative and documenting skills were exercised when writing technical reports about the programs I have been writing and their purpose.

IT Developer

thirtyone:eight • Part-time

Aug 2016 - Oct 2019

thirtyone:eight is a charity that specialises in introducing child-protection policies in churches and offering DBS checks to many UK dioceses.

I worked as part of the IT department; tooling using C#, managing databases using MySQL, maintaining IT systems using Azure, and fixing staff PCs.

The redevelopment of the company website was my largest project; spanning over multiple months, working with multiple developers, and closely communicating with the marketing department.

I heavily used JavaScript, CSS, and HTML, and worked with multiple web frameworks, including Angular and Vue.

Another large project I undertook was the development of a hardware auditing program that gathered information about staff PCs.

Once the data is gathered, it is sent via JSON to a server program that inserts the data into the company database. This required heavy knowledge of Azure, C#, and .NET Entity Framework.