My Portfolio

Select a volume to open

Core Engineering

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”

SecureBlockShare C · UNIX

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.”

ID3cision Python · ML

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.

Blog System CGI C++ · CGI

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.

Badgering About Assembly x86-64 · NASM
Core Engineering
Applications & AI

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.”

EligereAI C# · LLM

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.”

EligereManage C# · .NET

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.

vDebaterAI Java · LLM

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.

Cities of the World C++
Applications & AI
Web & Roles

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

TEDxOxford 2025 Web · VPS

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%”

Path to Survival Python

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

OSLA Web · Design
Web & Roles