Skip to main content

Work / Projects

Work I can walk you through.

A store for a local business, two team projects from Queen’s, and the site you’re on — with the stack, status, and lessons for each.

Projects

04

Open a project’s notes for what I learned and what was hard.

Projects

In progressSelected work

Basha Pantry — online store for a local shop

WoodHouse Groceries is a real local business with hundreds of products — American imports, sweets, Asian and African foods — and no online presence. I’m building Basha Pantry, their Shopify store, from the ground up: product data, photography, categories, and storefront. The unglamorous truth of e-commerce is that the hard part isn’t the website — it’s turning a shop full of stock into a clean, consistent, professional catalogue people can actually browse.

  • Shopify
  • E-commerce
  • Product data
Project notes

What I learned

  • Working directly with a business owner: agreeing scope, priorities, and what “done” means
  • Product data is a real engineering problem — naming, categorising, and photographing hundreds of items consistently

Challenges

  • Building a catalogue that looks professional when the source material is a physical shop floor
CompletedSelected work

ReignFall — a text-adventure reborn as a web game

A first-year university project (CSC1034) that grew into a full product. ReignFall reimagines the classic text adventure for modern devices: a peasant rises against a tyrannical king, gathering allies along the way. Under the story sits real engineering — player accounts with salted and SHA-256-hashed passwords tested against sqlmap, session tokens that expire, autosave and manual saves that rebuild full game state on load, a four-slot inventory with stat effects, score and reputation systems, a global analytics page with leaderboards, and six accessibility features. The story itself is driven by JSON files, which kept the branching narrative clean.

  • JavaScript
  • HTML & CSS
  • SQL
  • JSON
Project notes

What I learned

  • How much of a “simple” game is actually database design
  • Security is a feature: hashing, session expiry, and injection testing were built in, not bolted on
  • Keeping six people productive in one codebase takes real coordination

Challenges

  • Restoring a complete game state — session, allies, inventory, and logs — from a saved game without breaking anything
CompletedSelected work

Greenopoly — Monopoly, but it teaches climate change

Our second-year Software Engineering group project: a playable, database-backed Monopoly variant written in C++ where the mechanics carry a message about climate change. Building a rules-heavy board game with six people is an exercise in interfaces — between game systems, between the game and its database, and between teammates who all need to ship their part without breaking everyone else’s.

  • C++
  • SQL
Project notes

What I learned

  • Designing game rules as clean, testable systems rather than one giant loop
  • Agreeing interfaces early so six people can build in parallel

Challenges

  • Keeping a rules-heavy game fun while it carries an educational message
Completed

This website

Built with Next.js, TypeScript, and Tailwind rather than a site builder, because owning the details matters to me: it ships no trackers or cookies, sends every page as static HTML, respects reduced-motion settings, and keeps all content in typed files that refuse to compile if I try to publish something unfinished. Every push runs automated lint, type, and build checks.

  • Next.js
  • TypeScript
  • Tailwind CSS
  • Motion
Project notes

What I learned

  • Shipping something public forces decisions that tutorials never cover — accessibility, security headers, clear copy

Challenges

  • Writing about yourself is harder than writing code

The person behind the work

Projects are only part of the story.

My background, skills, and the route so far are on the About page.