My Projects

Latest applications I built as fun projects and self-learning.

Arcade Receipt Task System screenshot

Arcade Receipt Task System

A productivity app that turns free-form to-do lists into gamified work sessions, scored and printed on 80mm thermal receipt printers.

An LLM agent parses raw input, decomposes tasks into categorized subtasks with point values, and persists everything through a FastAPI backend backed by SQLite.

Sessions are tracked as game runs with combo multipliers and per-category streaks, producing physical ESC/POS receipts as tangible records of progress.

PythonFastAPISQLAlchemySQLiteOpenAI APIESC/POSDocker
The Reading Nook screenshot

The Reading Nook

A cloud-native bookstore inventory platform that modernizes a legacy management application on AWS.

A decoupled Next.js frontend and Flask REST API provide full CRUD operations for book inventory by ISBN, deployed as containers on ECS Fargate behind an ALB.

A fully automated GitHub Actions pipeline builds Docker images, pushes to ECR and redeploys ECS services, with credentials secured via AWS Secrets Manager.

Next.jsTypeScriptFlaskPostgreSQLAWS ECSECRDockerGitHub Actions
LCBO Fleet Management screenshot

LCBO Fleet Management

A data-driven fleet management solution built for Durham Region Transit to equalize bus wear and extend vehicle lifecycles.

A Python pipeline fuses GTFS, PRESTO and maintenance data into WearScore and RouteStress metrics, then a constraint-aware swap engine recommends optimal bus rotations.

A native macOS SwiftUI dashboard visualizes fleet health, route stress and projected maintenance savings.

PythonpandasSQLiteSwiftSwiftUIGTFS
Cloud Kitchen screenshot

Cloud Kitchen

A mobile app backend that streamlines digital pantry management and reduces food waste through proactive expiry tracking.

FEFO inventory tracking, a recipe recommendation engine ranked by pantry coverage, and LLM-based dietary filtering with async ThreadPoolExecutor parallelism.

A layered FastAPI architecture with PostgreSQL, SQLAlchemy and Alembic migrations, fully dockerized with Docker Compose.

PythonFastAPIPostgreSQLSQLAlchemyPydanticJWTDockerLLM
Server on Demand screenshot

Server on Demand

Retired

An automation service that dynamically powers a media server up and down based on real Jellyfin activity.

A stateless polling controller wakes the target via Wake-on-LAN and shuts it down over SSH during inactivity, with configurable cooldown timers and ICMP health checks.

Fully containerized and configured 12-factor style via environment variables, with pytest coverage for the controller logic.

Retired by design — this two-server setup was consolidated into the single always-on Home Server once the usage pattern made simplicity cheaper than wake-on-demand.

PythonWake-on-LANSSHJellyfinDockerpytest
Bakery Buddy screenshot

Bakery Buddy

A bakery ERP system covering inventory lifecycle, recipe-to-production workflows, nutrition analysis and multi-location sales reporting.

A React SPA consumes a Next.js API built on a service-repository architecture with Zod validation and parameterized PostgreSQL queries.

Automated low-stock alerts, a one-transaction bake system, dynamic nutrition labels and predictive sales analytics round out the platform.

TypeScriptReactNext.jsPostgreSQLZodDocker
COBOL & Mainframe Systems screenshot

COBOL & Mainframe Systems

A collection of IBM Mainframe applications for high-volume business data processing and online transaction management.

Batch COBOL programs orchestrated by JCL generate financial reports and validation audits, while interactive CICS systems with BMS screens handle online transactions.

Covers the full mainframe lifecycle — compilation, link-editing into load libraries, and automated JES2 job execution.

COBOLJCLCICSBMSDB2z/OS
Portfolio Site screenshot

Portfolio Site

The site you are on — a fully static Next.js portfolio deployed to S3 behind CloudFront, with a class-based theme system, a skills-to-projects evidence section, and a GitHub Actions pipeline that builds and ships on every push.

Built with the App Router and Tailwind CSS and exported as pure static HTML, so there is no server to patch — a private S3 bucket fronted by CloudFront Origin Access Control serves everything.

CI authenticates to AWS with OIDC (no long-lived keys), applies year-long immutable cache headers to hashed assets, and revalidates HTML on every deploy.

Next.jsTypeScriptReactTailwind CSSAWS S3CloudFrontGitHub Actions
Home Server screenshot

Home Server

A single self-hosted Linux server running media, file storage and scheduled backups for a household — consolidated down from a two-server setup that powered itself on demand.

Full documentation is in progress: sanitized Compose files, a topology diagram, the backup and restore log, and a hardening note will be published as a public repository once they are ready.

Documentation in progress — the complete runbook and restore log are still being written.

LinuxDockerDocker ComposeMedia & StorageScheduled BackupsSSH