AI & Machine Learning Engineer
I build and ship AI systems. Computer vision, on-device LLMs, developer tools. One rule across all of it: the user's data stays on the user's machine.
About
I build AI systems: computer vision, on-device LLMs, developer security tools. One principle runs through all of it: the user's data stays on their machine.
My dissertation argues GDPR and frontier-scale LLM training on web-scraped data don't structurally coexist. I write about AI systems, privacy law, and security.
Featured Projects
The Structural Limits of GDPR Compliance in Frontier LLM Training
The argument: GDPR and frontier-scale LLM training on web-scraped personal data are . Connects ML memorisation research (Carlini et al.), EU law, and Charter fundamental rights.structurally incompatible
I tested current governance responses against a standard derived from CJEU Charter case law, and predicted the Court of Rome would annul the Italian Garante's €15M fine against OpenAI. It did, six weeks after submission.
Proposed remedy: a data-trusts model under GDPR Art. 80(2), with three technical pieces: cryptographic dataset provenance, a training-data registry, and a memorisation-audit interface.
Read the dissertationFrameworks tested
Skills
Languages
AI / ML
Web & Backend
Data
Infra & Tooling
AI Governance
Formal Methods
More Work
01 mirror-game
AI/ML
Coming Soon
A real-time AI debate arena: argue against Claude Sonnet 4.6, live-scored across 3 rounds, with a Three.js WebGL stage and Supabase spectator mode.
mirror-game
AI/ML Coming SoonA real-time AI debate arena: argue against Claude Sonnet 4.6, live-scored across 3 rounds, with a Three.js WebGL stage and Supabase spectator mode.
- · Claude Sonnet 4.6 debate endpoint with streaming responses and graceful mock fallback
- · State machine across 6 screens: home → setup → debate → result → spectator-setup → spectator-debate
- · React Three Fiber WebGL scene morphs between 3 modes (home, debate, result) with winner reveal animation
- · Supabase real-time backend: transcript storage, live spectator updates, vote tallying
- · Framer Motion screen transitions; Tailwind CSS v4; TypeScript strict throughout
02 mocap-sandbox
AI/ML Coursework Real-time skeletal pose tracking from webcam using MediaPipe PoseLandmarker with OpenCV skeleton overlay.
mocap-sandbox
AI/ML CourseworkReal-time skeletal pose tracking from webcam using MediaPipe PoseLandmarker with OpenCV skeleton overlay.
- · MediaPipe PoseLandmarker (pose.task model, VIDEO mode, num_poses=1)
- · Real-time OpenCV skeleton overlay with frame-indexed timestamp
- · Graceful exit handling; runs on Python 3.13
03 ElegantDine
Web Flask restaurant-management app with reservations, order status workflow, and RBAC. Deployed on Render with PostgreSQL.
ElegantDine
WebFlask restaurant-management app with reservations, order status workflow, and RBAC. Deployed on Render with PostgreSQL.
- · Role-based auth (Flask-Login)
- · Order status state machine
- · PostgreSQL/SQLite auto-fallback
- · Deployed on Render
04 Pandemic Resilience System
Web Coursework Multi-role Flask platform with encryption at rest, FHIR vaccination records, and purchase-limit enforcement.
Pandemic Resilience System
Web CourseworkMulti-role Flask platform with encryption at rest, FHIR vaccination records, and purchase-limit enforcement.
- · Encryption at rest for sensitive identifiers
- · Werkzeug password hashing + RBAC
- · FHIR-JSON vaccination records
- · Full audit logging
05 Security Management Reports
Security Coursework Consultant-style authentication review (6 password managers, FIDO2, PCI-DSS) and the 2025 M&S ransomware post-mortem mapped to ISO 27001.
Security Management Reports
Security CourseworkConsultant-style authentication review (6 password managers, FIDO2, PCI-DSS) and the 2025 M&S ransomware post-mortem mapped to ISO 27001.
- · Evaluated 6 password managers + 2 MFA bypass techniques
- · Reconstructed Scattered Spider attack chain
- · Mapped failures to ISO 27001 / NIST
- · Costed remediation programme
06 Systems Programming
Systems Coursework POSIX shared memory + semaphores in C, a Linux loadable kernel module, and LAPACK benchmarking across 4 environments with Docker.
Systems Programming
Systems CourseworkPOSIX shared memory + semaphores in C, a Linux loadable kernel module, and LAPACK benchmarking across 4 environments with Docker.
- · POSIX shared memory + named semaphores with clean teardown
- · Loadable Linux kernel module
- · LAPACK solver verified to machine epsilon
- · Reproducible across 4 environments
07 Formal Verification (CSP-M / FDR)
Formal Methods Coursework CSP-M models in FDR proving a banking security breach and Dekker's algorithm failing safety vs liveness under compiler optimisation.
Formal Verification (CSP-M / FDR)
Formal Methods CourseworkCSP-M models in FDR proving a banking security breach and Dekker's algorithm failing safety vs liveness under compiler optimisation.
- · Trace refinement proving a breach testing could not catch
- · Mutual exclusion, deadlock, divergence checks
- · Safety failure (Opt A) vs liveness failure (Opt B)
Contact
Finishing my degree in 2026 and looking for AI and software roles. Open to relocation anywhere. If you're building something interesting, I want to hear about it.
Send an email