Skip to content
<ali />
← / home

/*work*/

Projects

University projects and beyond coursework projects.

Retail & Operations Intelligence Platform

// data engineering / backend

github →

A Python-based ELT data engineering platform simulating a multi-location retail business pipeline. The project processes raw transactional, inventory, and store data through a full medallion-style architecture (Bronze, Silver, Gold) using PostgreSQL.

Built ingestion pipelines to load raw CSV datasets into PostgreSQL, followed by in-database SQL transformations for cleaning, validation, deduplication, and aggregation. Implemented retry handling, quarantine logic for failed records, idempotent upserts, and pipeline run tracking to improve reliability and observability.

Developed orchestration workflows using Prefect to automate ingestion, transformation, and validation stages. Created data quality checks to detect invalid or inconsistent records before promoting datasets through the pipeline.

Exposed analytics through a FastAPI REST API with endpoints for daily sales metrics, inventory health alerts, and pipeline monitoring. Containerised the stack with Docker Compose, including PostgreSQL and pgAdmin for local development and testing.

  • End-to-end data engineering workflows
  • ELT pipeline design
  • Medallion architecture patterns (Bronze, Silver, Gold)
  • SQL-based data transformation and deduplication
  • Data quality validation and quarantine logic
  • API-driven analytics serving
  • Workflow orchestration with Prefect
  • Docker-based infrastructure with Docker Compose
  • Automated testing and CI-oriented development practices

Architecture & Engineering Evidence

Project artifacts, execution results, and technical evidence from the implementation.

select artifact to expand

//stack
PythonPostgreSQLPrefectFastAPIDockerDocker Compose

LLM Benchmarking Framework for Financial Sentiment Analysis

// final year project / data analysis

Built a financial sentiment analysis benchmarking framework comparing OpenAI GPT-4o and Google Gemini 2.0 Flash on real-world finance datasets. The project automates dataset processing, prompt standardisation, prediction validation, evaluation metrics, and result visualisation to analyse how different LLMs perform on sentiment classification tasks.

Implemented a full evaluation pipeline using Python and Jupyter across the Financial PhraseBank and FiQA datasets, covering standardised 3-class sentiment prediction (positive, negative, neutral), automated response validation, and label normalisation. Evaluation included accuracy, macro F1, per-class F1, latency, and hallucination analysis, with statistical significance testing via McNemar's Test and comparative confusion matrix visualisations.

The project demonstrated strong differences in model behaviour: GPT-4o achieved significantly higher classification performance while Gemini 2.0 Flash delivered lower latency. Focus was placed on reproducible benchmarking, clean evaluation methodology, and structured LLM comparison workflows.

  • Financial PhraseBank and FiQA dataset handling
  • Standardised 3-class sentiment prediction across both models
  • Accuracy, macro F1, per-class F1, latency, and hallucination analysis
  • Automated response validation and label normalisation
  • Statistical significance testing using McNemar's Test
  • Confusion matrices and comparative visualisations
  • Optimised API usage to reduce failed calls and improve cost efficiency

Model Evaluation Evidence

Comparative benchmark outputs, classification metrics, and latency analysis artifacts from the financial sentiment LLM evaluation framework.

select artifact to expand

//stack
PythonOpenAI APIGemini APIPandasNumPyScikit-learnMatplotlibJupyter Notebook

Support Ticket Management API

// backend / api

github →

Developed a backend support ticket management API using Python and FastAPI with JWT authentication, user registration/login flows, and per-user ticket CRUD operations. Implemented SQLAlchemy models, Alembic database migrations, Pydantic validation schemas, and protected API routes with ownership-based access control. Added Docker support, automated pytest test coverage, and environment-based configuration management for local development and deployment workflows.

//stack
PythonFastAPISQLAlchemyPydanticJWTpytestDocker

Sana Wajid Photography

// client work / frontend / production

live site →

Built a production-ready single-page photography portfolio website for Sana Wajid, a Manchester-based wedding and couple photographer. The site recreates the client's existing Pixieset visual identity using extracted design tokens, matched typography, warm editorial colours, cinematic image treatments, and responsive layouts.

Implemented a polished frontend experience with a fullscreen hero, scroll-aware navigation, mobile overlay menu, pricing/package sections, animated FAQ accordion, and a validated contact form. Motion was added with Framer Motion while animation timing was tuned to avoid delaying key hero content and hurting Lighthouse performance.

Integrated Resend for transactional email delivery from the contact form, including React Hook Form and Zod validation. Debugged and resolved production email delivery issues involving Resend workspace configuration, verified sending domain setup, and environment variable alignment.

Added production SEO and deployment polish including OpenGraph image generation, metadata, location-focused copy for Manchester photography search visibility, JSON-LD LocalBusiness structured data, sitemap.xml, robots.txt, custom favicon, and Vercel deployment with custom domain configuration.

  • Client-facing production website delivered for a real photography business
  • Pixieset-inspired design system recreated from live-site design tokens
  • Responsive single-page layout with cinematic image treatment and mobile-first readability
  • Validated contact workflow using React Hook Form, Zod, and Resend
  • Resolved real production email delivery issues across Resend, DNS/domain verification, and environment variables
  • SEO implementation with metadata, OpenGraph image, sitemap, robots.txt, and LocalBusiness JSON-LD
  • Performance tuning for animated hero content and image-heavy photography layout
  • Deployed to Vercel with custom domain and verified sending domain
//stack
Next.jsTypeScriptTailwind CSSFramer MotionResendReact Hook FormZodVercelSharp

Activity Tracker — Mobile

// mobile / frontend

github →

Built a cross-platform mobile fitness tracking application using React Native and Expo focused on step monitoring, activity management, and real-time fitness analytics. The application integrates device pedometer sensors to track daily steps, estimate calories burned, distance travelled, and activity duration, while persisting user data locally using AsyncStorage.

Implemented authentication flows with login, registration, and session handling connected to a backend API. Designed a modular frontend architecture using feature-based structure, reusable form components, context providers, MobX state management, and service-layer abstractions for API communication and activity tracking.

Developed real-time step tracking with background-aware lifecycle handling, weekly activity summaries, average step calculations, and historical progress visualisation. The project also includes activity CRUD functionality, responsive mobile navigation, form validation, and TypeScript-based type safety throughout the application.

//stack
React NativeExpoTypeScriptMobXReact NavigationAxiosAsyncStorageExpo SensorsReact Hook Form

Activity Tracker — API

// backend / api

github →

Built a RESTful fitness and activity tracking backend API using Express.js and SQLite, focused on managing workouts, weight tracking, daily goals, and user profile data.

The project implements a structured backend architecture with separated routes, controllers, models, authentication middleware, and API documentation. Features include secure user authentication, workout and weight CRUD operations, daily goal and progress tracking, request validation using Joi, and interactive API documentation via Swagger UI.

  • Designed and implemented REST API endpoints for workouts, weight history, profiles, and user management
  • Built server-side validation and error handling for incoming requests
  • Integrated authentication middleware for protected routes and user-specific data access
  • Structured the backend using MVC-style separation of concerns
  • Implemented persistent data storage with SQLite
  • Added API logging, CORS support, and JSON request handling
  • Created interactive API documentation accessible through /docs
  • Added database reset/wipe utilities and development tooling with Nodemon and Mocha
//stack
Node.jsExpress.jsSQLite3JoiSwagger/OpenAPIMochaMorganCORS