Skip to content

First-class Computer Science graduate from Newcastle University, seeking a graduate software engineering role. I build backend, systems and applied-AI software that sits close to the machine: local retrieval-augmented assistants, real-time control systems, passive network sensing. I implement the hard parts from first principles, and I care about clean, well-documented code and about things working end to end.

// Education

BSc (Hons) Computer Science, First-Class Honours

Newcastle University | Sep 2023 - Jun 2026 | Accredited by BCS, The Chartered Institute for IT

Dissertation, From Latent Concept Vectors to Anatomy-Conditioned Dense Readouts: a falsification-driven study of whether frozen CLIP-family vision-language models can segment chest-X-ray pathology at the pixel level with no training masks. Introduced Hyperspherical Ideal Words, a Riemannian correction to Trager's ideal-word construction that cuts the compositional additivity residual 14-32x across three CLIP backbones. Built a reproducible PyTorch pipeline over four credentialed datasets, caching expensive results against a hash of the run config and re-exporting every figure and underlying number from scratch on each run, guarded patient-ID leakage between splits by hard assertion, and evaluated with paired BCa bootstrap intervals and Benjamini-Yekutieli FDR correction. Against a from-scratch reimplementation of MedCLIP-SAMv2 it led on 8 of 9 held-out pathologies by median Dice, four with intervals excluding zero. Null results, failed baselines and a full threats-to-validity table are reported.

Module marks

Marks are out of 100. 70 and above is a First.

Final yearoverall 70.5
  • Cryptography80
  • System & Network Security79
  • Distributed Systems76
  • Computer Vision & AI68
  • Major Project & Dissertation66
Second yearoverall 73.3
  • Algorithm Design & Analysis86
  • Software Systems Design & Implementation79
  • Security Programming77
  • Software Engineering Team Project73
  • Contemporary Topics in Computing61
First yearoverall 81.5
  • Computer Systems Design & Architectures96
  • Programming Portfolio - Python85
  • Programming Portfolio - Java81
  • Foundations of Data Science74
  • Fundamentals of Computing70

Access to Higher Education Diploma: Computing

Kingston College | Sep 2022 - Jul 2023

30 units at Distinction, 15 at Merit. Covered C#, SQL database design and implementation, HTML and CSS, systems analysis, and TCP/IP networking.

Earlier education

Richard Challoner School | 2014 - 2019

10 GCSEs including grade 9 Physics; grade 8 Mathematics, Computer Science, Biology and Chemistry; grade 6 English Language. UKMT Intermediate Mathematics Challenge, Gold Award (2019), placing in roughly the top 8% of entrants nationally.

// Technical skills

Languages
PythonJavaCC++C#GoLuaJavaScript/TypeScriptSQLBash
Backend & systems
REST APIsConcurrency and multithreadingDistributed systems (RPC, logical clocks, consensus)SQLiteMySQL/MariaDBFlaskFastAPIElectron
AI / ML
PyTorchNumPypandasscikit-learnRetrieval-augmented generation (RAG)Model Context Protocol (MCP)Local LLM inference (Ollama)Vector searchComputer vision (CLIP/BiomedCLIP)Deep-learning interpretability
Web
ReactNext.jsViteHTMLCSSTailwind
Security & networking
CryptographyNetwork security802.11 and packet analysisWiresharkCisco Packet Tracer
Tools & practices
GitGitHub Actions (CI/CD)LinuxTesting (pytest)Technical documentation

// Projects

Hal - local RAG AI assistant

Python, Ollama, MCP, NumPy

A privacy-preserving retrieval-augmented assistant that answers strictly from a personal Obsidian knowledge base and runs entirely offline on one consumer GPU. Built from first principles: heading-aware chunking, a NumPy vector store with cosine similarity, and incremental re-indexing keyed on content hashes. Answers cite the note each passage came from, or say plainly that the notes do not cover it. Exposes its search over the Model Context Protocol with path-traversal guards, and works around a 32K context window with a three-tier memory system and twelve task-specific commands.

Read the write-up

Probe Request Sniffer - passive Wi-Fi device counting

Python, scapy/pyshark, 802.11

A passive 802.11 sniffer that counts devices through MAC randomisation by fingerprinting the information elements in each frame, so one phone maps to one identity however often it rotates its address. Over fifteen minutes in a real room the clustered count held at about 30 devices while raw address counting climbed past 250. Two capture backends behind one interface, a thread-safe sliding-window tracker with lazy expiry, and a 113-test suite that crafts frames in memory, so it runs with no interface, monitor mode or root.

Read the write-up

Lidar Autonavigation - real-time autonomous control

Lua, A*, control theory, linear algebra

A real-time autopilot that sweeps laser rangefinders into a live obstacle map, plans with an A* search sliced across ticks so it never overruns the 60 Hz budget, and follows the route with speed-scaled pure pursuit. Written inside a hard 4096-character script cap, later raised to 8192, which made every byte a design decision: an octile heuristic for exact 8-connected cost, a clearance penalty that keeps it mid-channel, 3D rotation matrices for attitude compensation, and an O(1) hash-set spatial map.

Read the write-up

Hatch - desktop mood tracker with a roaming creature

Electron, React, TypeScript, SQLite, FastAPI

An Electron desktop pet whose creature leaves the app window and roams the desktop: one position in global screen coordinates, ticked at 30 Hz by the main process and drawn by transparent click-through overlay windows. The simulation engine is pure, so a 30-day life cycle is testable in a loop; persistence is event-sourced SQLite with versioned migrations and a backup taken before each one; and an optional Python AI sidecar sits behind a typed IPC boundary, with context isolation on and the renderer sandboxed.

Read the write-up

Further projects include a Canvas API archiver and jupyter-tts-alerts, a zero-dependency Python package whose 188-test suite runs on GitHub Actions across Linux, macOS and Windows. Write-ups for all of these at eoinforrest.me and github.com/NotEoin.

// Work experience

Bartender, The Old George Inn

Nov 2024 - May 2025

Served 400+ customers a shift through peak periods as part of a team of five.

Bartender / Supervisor, Bar Malden

May 2024 - Sep 2024

Trained new staff, delegated tasks during service, and held accountability for cashing-up, weekly banking, inventory and audits. Upheld safety and licensing standards, and ran cellar operations including stock, shipments and contractor coordination.

// Additional

  • Community: Volunteered with Cancer Research UK and at a community coffee bar.
  • Interests: Active in university societies: computing and technology, skateboarding, running, fellwalking, and cold-water swimming.

References available on request.