My Portfolio
Select a volume to open
Project Earworm
An audio prompt injection evaluation framework designed to assess the susceptibility of voice-enabled LLM agents to adversarial audio attacks. Developed as a final-year dissertation at Oxford Brookes University, this represents one of the first systematic empirical evaluations of this attack surface. The framework targets a simulated voice-enabled customer service agent, evaluating how adversarial audio inputs spanning both semantic and acoustic attack categories can manipulate agent behaviour to carry out unauthorised actions.
Technologies: Python, FastAPI, LangChain, LangGraph, Docker, PostgreSQL, vLLM
- Custom ReAct agent built from scratch
- Adversarial audio corpus spanning semantic and acoustic attack types
- Evaluation across multiple open-source speech-language models
- Rigorous statistical analysis of attack success rates
- Docker Compose orchestration with PostgreSQL persistent state
- FastAPI backend with LangChain and LangGraph agent architecture
Challenges: Building a complete evaluation framework from scratch required implementing a custom ReAct agent, constructing an adversarial audio corpus across two distinct attack categories, and designing statistically rigorous analysis methods, all within the scope of a single dissertation. Evaluating across multiple open-source speech-language models via vLLM added significant infrastructure complexity.
Security notes: The research identified a number of potent attack vectors against voice-enabled LLM agents. Full findings are currently withheld pending responsible disclosure. Source code is under University embargo pending final marking.
SecureBlockShare: UNIX Data System
Daemon-based data sharing and storage system written in C for UNIX. Uses local inter-process communication with a strong security-first design philosophy.
Technologies: C, UNIX, IPC, Daemon, POSIX, Systems Programming
- Local inter-process communication
- Daemon architecture
- Access control and privilege separation
- Audit logging
- Robust IPC message validation
Challenges: Designing robust IPC and daemon supervision while hardening against misuse and race conditions required deep understanding of POSIX semantics and careful locking strategy.
Security notes: Security-first design with principle of least privilege, strict IPC message validation, and careful handling of shared memory boundaries.
Feedback: “Marked A+ by the University”
ID3cision: Decision Tree Classifier
A Decision Tree classifier built on the ID3 Algorithm, developed as Year 1 university coursework on Machine Learning fundamentals. Trained and tested on a categorical car dataset, written entirely in Python.
Technologies: Python, ID3 Algorithm, Decision Tree, Information Theory, CSV Processing, Machine Learning
- ID3 algorithm from scratch
- Entropy and information gain calculation
- Recursive tree construction
- Custom Node class structure
- Majority-class and pure-subset handling
- Model accuracy evaluation on test data
Challenges: Managing entropy calculations efficiently across large categorical datasets required careful handling of data types and edge cases in the splitting logic.
Security notes: Academic project. No user data or external connections.
Feedback: “Achieved high grade for the module.”
Blog System CGI: Secure Web Platform
A secure, multi-user blog platform built in C++ using CGI and Apache, with a MariaDB backend. Developed as university coursework demonstrating secure programming principles, including two-factor authentication, bcrypt password hashing, and SQL injection prevention via prepared statements.
Technologies: C++, CGI, Apache, MariaDB, OpenSSL, bcrypt, cgicc, CMake, Shell
- Two-factor authentication via email OTP
- bcrypt password hashing
- 30-minute session token expiration
- Admin and user role separation
- SQL injection prevention via prepared statements
- XSS mitigation via HTML escaping
- Automated deployment setup script
Challenges: Integrating C++ with CGI, Apache, MariaDB, and SMTP for 2FA required careful CMake dependency management. Enforcing security at every input boundary within a stateless CGI request cycle demanded rigorous architectural discipline.
Security notes: Security-first design: email-based 2FA with single-use codes, bcrypt hashing, SQL injection prevention via prepared statements, and XSS mitigation through output escaping.
Badgering About Assembly: x86-64 CRUD System
A zoo badger and staff inventory management system written entirely in x86-64 NASM assembly, developed for Oxford Brookes University's Malware Analysis module. Over 1,150 lines of hand-written assembly with zero high-level language dependencies.
Technologies: x86-64 Assembly, NASM, GCC Linker, ELF Binary, GNU/Linux, Systems Programming
- Full CRUD operations for badger and staff records
- 1150+ lines of hand-written assembly
- Zero high-level language dependencies
- Manual memory management
- Array compaction on record deletion
Challenges: Working entirely in x86-64 assembly means managing every aspect of program state manually: stack frames, register allocation, memory layout, and system calls, with no abstraction layer to fall back on.
Security notes: Academic project. No external connections. All memory operations managed by hand with careful bounds discipline.
EligereAI App
An AI-powered app that lets users query the Eligere music library using plain English. Powered by .NET MAUI (C#) on the front-end and an LLM for interpreting and formatting results from a cloud PostgreSQL database.
Technologies: C#, .NET MAUI, PostgreSQL, OpenAI API, LLM, Cloud Database
- Plain-English queries (no SQL required)
- Cloud-based database access from anywhere
- Supports any SQL database integration
- Multi-platform including iOS
- AI reasoning transparency for user validation
Challenges: Ensuring reliable LLM output was the biggest challenge. Mitigated with robust error-handling, strict prompt engineering for structured output, and user-facing validation of the model's reasoning steps.
Security notes: Prompt engineering safeguards against hallucinations and injection attacks. Industry-standard HTTPS for all API communications. No sensitive data stored client-side.
Feedback: “Good feedback from early testers.”
EligereManage App
A graphical library management application for the Eligere music lending service. Built with .NET MAUI (C#) and backed by a custom cloud-hosted PostgreSQL database.
Technologies: C#, .NET MAUI, PostgreSQL, DBMS, Cloud Infrastructure
- Intuitive cross-platform UI (including iOS)
- Automated member reminder notifications
- Choral music loan tracking
- Real-time cloud sync
Challenges: .NET MAUI was still a bleeding-edge framework during development, and the project encountered unexpected bugs and occasionally unfixable platform-specific compilation issues. Dealt with methodically as they arose.
Security notes: Data encrypted at rest via SecureStorage and in transit via HTTPS. Industry-standard API security protocols throughout.
Feedback: “Rated well by early testers.”
vDebaterAI
A CLI-based multi-agent autonomous debate simulator written in Java, modelled on the Oxford Union Society's Debate Format. (Not officially endorsed by or associated with the Oxford Union.)
Technologies: Java, CLI, LLM, OpenAI API, Agentic System, Text-to-Speech
- Configurable virtual chamber with customisable agents
- Debate minute recording to text file
- Text-to-speech output for agent contributions
- User-defined debate motion topic
Challenges: Preventing agents from entering infinite loops is a common challenge in agentic LLM systems. Addressed with structured turn management and context-aware termination logic.
Security notes: No personal data transmitted. Standard API security and best practices applied for all external calls.
CLI C++: Cities of the World
A comprehensive city management system with a command-line interface. Users can add, search, update, and delete city records including population, history, geographical coordinates, and mayor information. Built in C++14 with a clean object-oriented architecture.
Technologies: C++14, OOP, CLI, File I/O, Haversine Formula, Bubble Sort, Memory Management, Input Validation
- Robust multi-field validation system
- Custom sorting implementation
- Modular architecture separating UI from business logic
- Geographic distance calculation via Haversine formula
Security notes: Safe manual memory management, with no leaks or undefined behaviour.
TEDxOxford 2025: IT Officer
Sole IT Officer for TEDxOxford's 2025 Conference. Developed and maintained the full IT infrastructure, including the public-facing website, ensuring seamless operations both in the run-up to and on the day of the event.
Technologies: HTML, CSS, JavaScript, CDN, VPS, DNS Management, GDPR
- Responsive public-facing website
- VPS-hosted infrastructure
- Automated operational systems
- Day-of event technical support
Challenges: Inherited significant technical debt from legacy systems. Overcame this through methodical refactoring while maintaining live service continuity in the run-up to the event.
Security notes: Enhanced GDPR compliance throughout. Automated systems to reduce manual error exposure.
Feedback: “Event attendees, speakers and the Co-Presidents praised the website and infrastructure for its simplicity and ease-of-use.” - TEDxOxford Co-Presidents, Attendees and Speakers
Path To Survival: Mini-Game
A CLI-based mini-game developed as final coursework for Year 1 of University. The game challenges players to navigate a procedurally generated board against a countdown timer, with scores tracked on a persistent leaderboard.
Technologies: Python, CLI, Procedural Generation, Game Logic
- Randomised board generation
- Timer-based scoring system
- Persistent leaderboard for top players
- ASCII-rendered game board
Feedback: “Final module grade: >95%”
Oxford Students Liberal Association
As Webmaster (MT24, HT25, TT25), I build and maintain the full digital infrastructure for the Association: the website, email, membership automation, GitHub archive, and the 'Freedom of the Press' blog. I also designed the Association's new logos.
Technologies: HTML, CSS, JavaScript, Hugo, CDN, GitHub, Email Infrastructure, Graphic Design
- Cost-effective custom infrastructure
- Membership automation pipeline
- Brand guidelines and new logo design
- Freedom of the Press blog
- GitHub-based document archive
Challenges: Strict budgetary constraints required building as much as possible in-house and choosing cloud services tactically to minimise cost without compromising reliability.
Security notes: GDPR-compliant data handling. Secure email infrastructure with SPF, DKIM, and DMARC configuration.
Feedback: “The website is fabulous!” - Zagham Farhan [University College, Oxford], President, Michaelmas Term MMXXIV, Oxford Students Liberal Association