Will.

Will · BSc Computer Science, University of Southampton

Built from scratch.

  • A neural network written in NumPy alone that reads handwriting at 99% on MNIST.
  • A fantasy rugby prediction engine running gradient-boosted forecasts off a point-in-time data pipeline.
  • A 5×5 chess engine built on bitboards and Zobrist hashing that plays you in the browser.
  • First place in the university Cyber Security Society CTF, with the most flags captured.

Open to graduate roles from 2027.

86% in AI module2:1 average (Year 2)1st place, university CTFUK citizen, London

Draw a digit

A neural network I wrote from scratch in sixth form: NumPy for the matrix algebra and nothing else, 99% on MNIST. What runs below is the original network, its trained weights unchanged, with the forward pass ported to JavaScript.

draw a digit, 0–9
·
    Fig. 1: live forward pass through the original trained weights (784 → 20 → 10 → 10). Source on GitHub.

    Play the engine

    My AI-coursework engine, ported piece for piece: the 5×5 Chess Fragments variant, where the corner piece, the Right , moves as rook plus knight. The search is the Python original's: magic bitboards, a Zobrist-hashed transposition table, killer and history ordering, null-move pruning and quiescence, with its piece values and square tables copied verbatim. You play as White.

    Your move.

    depth
    nodes
    time
    eval
    line
    Fig. 2: the Right, the variant's custom piece. Pawns keep their double-push and en passant.

    Race the searches

    From a team project I led in my penultimate year of school, built for a STEM fair, that solved mazes off a webcam. Breadth-first floods, A* aims for the exit, depth-first takes the first corridor it finds.

    visited
    path
    frontier peak
    Fig. 3: recursive-backtracker generation with a few extra openings so routes compete. All three searches run on the same grid graph. Source on GitHub.

    Projects

    1. 2026
      ongoing

      6n

      A fantasy rugby prediction engine, now running on competitions beyond the Six Nations: a point-in-time data pipeline drawing on player form data, team-level play-shape metrics, world rankings, historical results and weather, feeding gradient-boosted forecasts.

    2. 2026

      chessweb

      Multiplayer chess in the browser: Flask and WebSockets, user accounts, an object-oriented rules engine.

    3. 2026

      bible-memorisation-app

      React app for memorising verses with SM-2 spaced repetition.

    Experience

    1. Oct 2022
      London

      Ibex.ai Software & Data Engineering Intern

      Pandas pipelines on production data; regression and classification models on Azure Databricks.

    2. Jul 2022
      South Africa

      IoT.nxt Data Analysis Intern

      Performance analytics and reporting for provincial rugby.

    3. Jul 2022
      South Africa

      Codehesion Software Development Intern

      Supply-chain and customer-loyalty systems.

    Background

    BSc Computer Science, University of Southampton, 2024–present: 86% in Artificial Intelligence. Before that, A-levels in Mathematics at A*, with Further Mathematics, Computer Science and Physics all at A.

    1st place in the university Cyber Security Society CTF, May 2025.

    Toolbox

    languages
    Python · Java · JavaScript / TypeScript · Haskell · C · SQL
    data & ML
    NumPy · Pandas · PyTorch · TensorFlow · Azure Databricks
    web
    React · Next.js · Flask · WebSockets · HTML/CSS
    tools
    Git · Linux · Bash

    Contact

    You made it to Neptune; say hello.

    mail@williamgreenfield.com

    Scale

    • Orbital angles and positions are calculated from JPL Keplerian elements.
    • Planet and Sun sizes are scaled to the square root of their true radii.
    • The bodies and the orbits therefore use different, non-linear scales.
    • For example, Jupiter’s true radius is about 11 times Earth’s, but it is drawn about √11 ≈ 3.3 times larger.

    Imagery

    Earth and Sun maps: NASA/GSFC Earth and Sun. Uranus and Neptune maps: NASA via ESO Supernova (Uranus, Neptune; CC BY 4.0). Other textures: Solar System Scope (CC BY 4.0). Milky Way backdrop: ESO / S. Brunier.

    Click a planet to revisit a section.