Featured Projects

Python

Recipify Platform

Designed and built a full-stack recipe sharing platform enabling users to discover, create, and manage recipes within a community-driven environment, featuring advanced filtering, personalised feeds, and interactive user tools.


Key contributions & functionality
• Led development across core platform features within a five-person engineering team, taking responsibility for major functional components and technical direction
• Built the end-to-end recipe system, supporting structured ingredients, step-by-step instructions, images, comments, ratings, and favourites
• Co-designed and implemented an intelligent filtering system allowing users to:
• Browse by meal type (breakfast, lunch, dinner, dessert)
• Apply dietary preferences (vegetarian, gluten-free, pescatarian)
• Exclude unwanted criteria through negative filtering logic
• I developed a dynamic shopping list feature enabling users to:
• Add ingredients manually
• Import ingredients directly from recipes
• Adjust quantities for meal planning
• Created a personalised feed model with:
• Global recipe discovery (all users)
• Following-only feed to surface content from selected creators
• Introduced recipe engagement features including star-based ratings, favourites, and comment threads
• Implemented supporting platform systems including user profiles, social relationships, notifications, and consistent front-end navigation


Technologies
Python • HTML • CSS • SQL • PythonAnywhere


Engineering focus
Full-stack development • Feature ownership • Data modelling • User interaction flows • Filtering logic • Authentication systems • Collaborative software engineering • Scalable content platforms

Furniture Search Agent

Built an automated furniture search agent to crawl retailer product listings, extract structured product data from HTML pages, and present results in a consistent format for comparison and decision-making.


System design & implementation
• Implemented a scraping workflow to navigate product listing pages and collect individual product URLs
• Extracted structured product data from raw HTML, applying normalisation, validation, and error handling to manage inconsistent formatting and missing fields
• Designed structured outputs (CSV/JSON) for easy and rapid comparison, and downstream analysis


Technologies
Python • Web scraping • HTML parsing • Playwright / BeautifulSoup • pandas • CSV/JSON


Engineering focus
Data extraction • Automation workflows • Parsing & normalisation • Reliability & edge cases • Reproducible outputs • Rapid delivery under constraints

Java

Air Pollution Tracker

Designed and developed a Java-based air pollution analysis platform using official UK government datasets, enabling users to explore historical and real-time pollutant levels through interactive geographic visualisation and statistical comparison tools.


Key contributions & functionality
• Led data ingestion and processing pipelines, transforming raw multi-year government datasets into structured formats suitable for statistical analysis and visual rendering
• Designed the internal data model used across the application, enabling consistent pollutant comparisons across locations and time ranges
• Integrated a real-time air quality API, allowing live pollutant readings to be compared against historical averages
• Contributed to extending the system from a fixed London-only map to nationwide coverage across the UK, supporting scalable geographic selection
• Supported dynamic location selection via:
• Coordinate-based geographic ranges
• Predefined major UK cities (e.g. London, Birmingham, Liverpool, Cardiff)
• Worked closely with UI and statistics teammates to ensure processed datasets aligned with visual overlays and analytical calculations
• Achieved 88% overall


Technologies
Java • Government open datasets • REST API integration • Data processing • Geographic coordinate modelling


Engineering focus
Data pipelines • API integration • Data modelling • Collaborative system design • Spatial data analysis • Extension-driven development

Beyond the Horizon

Built a text-based adventure game in Java focused on object-oriented design, command-driven interaction, and extensible game architecture. Players explore a damaged space station, solve puzzles, manage inventory, and navigate interconnected environments to reach the escape pod.


Key systems & implementation
• Designed a modular command-driven game engine supporting typed input and context-aware responses
• Implemented room-based navigation, inventory management, and puzzle-driven progression logic
• Built an extensible world model using OOP principles to support easy re-theming and expansion
• Developed an interactive map and help system to improve player orientation and usability


Technologies
Java • Object-oriented programming • Command parsing • Game state management • Console-based interfaces


Engineering focus
Object-oriented design • Modular architecture • State management • Extensible systems • Game logic • User interaction flows

C++

Countdown

Built a C++ solver for Countdown-style number puzzles using recursive backtracking and constraint validation to generate and evaluate legal arithmetic expressions. The system guarantees solvable challenges and forms the foundation for an extensible interactive game engine.


Key systems & implementation
• Developed a recursive constraint-based solver combined with an RPN evaluation engine to efficiently explore valid arithmetic combinations
• Enforced strict legality rules including single-use numbers, integer-only division, and early and targeted search pruning
• Implemented fallback logic to return the closest valid solution when an exact target is unreachable
• Architected the solver as a reusable engine to support future extension into an interactive game mode


Planned extensions
• Problem generator verified by the solver to guarantee solvable challenges
• Timed gameplay mode
• Scoring and progression system
• Optional leaderboard support


Technologies
C++ • Recursive algorithms • Constraint solving • Expression parsing • Problem-space search


Engineering focus
Algorithm design • Backtracking • Search optimisation • Constraint validation • Systems thinking

Scala

Wordle

Built an “Evil Wordle” engine in Scala that reacts to the player’s guesses by selecting the hardest possible secret word — i.e., the word that keeps the largest remaining solution space consistent with all feedback. This turns Wordle into a worst-case optimisation problem rather than a fixed hidden answer.


Key systems & implementation
• Implemented Wordle-style feedback logic (green/yellow/grey) and used it to filter candidate word lists after each guess
• Designed an adversarial selector (“evil” strategy) that chooses the next secret word by maximising how many valid answers remain after applying constraints
• Added ranking/heuristics to break ties between equally “evil” choices, prioritising words that minimise information revealed to the player
• Produced a clean, test-driven implementation that passed the full automated marking test suite


Planned extensions
• Timed rounds
• Difficulty modes
• Daily challenge seed
• Optional leaderboard + web demo


Technologies
Scala • Functional programming • Constraint filtering • Worst-case optimisation • Search/heuristics


Engineering focus
Adversarial algorithms • Constraint satisfaction • Worst-case optimisation • Search & heuristics • Systems reasoning

Shogun

Built a turn-based Shogun game engine in Scala that models game rules, validates legal moves, and performs automated move selection. The system treats gameplay as a state-transition problem, enabling rule-driven simulation and strategic decision-making rather than hard-coded gameplay paths.


Key systems & implementation
• Implemented a full game state model representing the board, pieces, turn order, and win conditions
• Encoded Shogun rule logic to validate legal moves and enforce game constraints at each turn
• Developed automated move selection logic to evaluate and choose valid actions from the current state
• Designed pure, composable functions to transition between game states in a predictable and testable way
• Produced a clean, specification-driven implementation that passed the full automated marking test suite


Planned extensions
• Interactive player vs AI mode
• Difficulty levels via alternative move-selection strategies
• Visual board rendering and web-based interface
• Timed turns and competitive scoring modes


Technologies
Scala • Functional programming • Game state modelling • Rule engines • Automated decision logic


Engineering focus
State machines • Rule-based systems • Algorithmic decision-making • Constraint validation • Systems thinking

JavaScript / HTML / CSS

Personal Website

A responsive personal portfolio and online CV built with HTML, CSS, and JavaScript, featuring modular partials, smooth UI transitions, and a project‑focused layout.