Projects
See my past and current projects.
Currently Working On



LucidTrack
05/2025 - Present
LucidTrack is a modern web application designed to streamline the management of internship applications and their outcomes for students. It offers a customisable interface and gives a clear view into overall progress and performance of a students applications.
Built with Bernard Lee, Nicole Kirk



Chronalog
01/2026 - Present
A Git-backed changelog package for Next.js. Manage your changelog entries with a beautiful admin interface. Git-backed, no database, own your data. Features MDX support, customisable configuration, and automatic Git commits for all changes.
Past Projects
2026



Supabase Schema MCP
02/2026
A Python-based MCP server that gives AI tools safe, read-only access to fine-grained Supabase/Postgres schema metadata. It focuses purely on database structure: tables, columns, views, enums, RLS policies (and coverage), functions/RPC candidates, foreign keys, indexes, and triggers, so assistants can reason about migrations, audits, and relationship graphs without running arbitrary SQL.
2025



Hanki
12/2025
A spaced repetition flashcard application built with Next.js. Study your flashcards with an intelligent algorithm that shows you difficult cards more often and easy cards less often. Features multiple decks, configurable settings, progress tracking, and CSV import functionality.



University Grades Tracker
12/2025
A web application for tracking university grades across different modules and calculating weighted averages. Features include semester and year breakdowns, module grade tracking, and comprehensive statistics.
N-Body Simulation
12/2025
Python package implementing gravitational n-body simulation with computational complexity optimisation. Developed direct O(n²) force calculation and Barnes-Hut algorithm implementation achieving O(n log n) complexity via quadtree spatial partitioning. Implemented custom quadtree data structure (Gadget) with recursive spatial decomposition for efficient force approximation. Designed modular package architecture with separate simulation classes, custom stack data structure, and physics-based body representation. Features animated visualisation of multi-body gravitational interactions with configurable time steps and astronomical unit scaling.
LucidTrack Browser Extension
11/2025
Browser extensions for LucidTrack enabling seamless job application tracking from job posting sites. Built Chrome extension utilising chrome.identity API for native OAuth authentication flow. Currently developing Safari Web Extension with tab-based OAuth redirect flow using Supabase callback handling due to Safari's lack of chrome.identity API support. Implemented manifest.json adaptation layer removing Chrome-specific permissions (identity, oauth2) for Safari compatibility whilst maintaining feature parity. Built automated build system with pnpm supporting both extension targets. Developed token extraction and authentication state management across browser contexts with automatic tab closure after successful OAuth completion.
Built with Bernard Lee



Job Data Cleanser
10/2025
Full-stack data cleansing application for normalising and deduplicating job application records. Built FastAPI backend with dual matching algorithms: RapidFuzz-based fuzzy string matching and sentence transformer embeddings for semantic similarity. Implemented composite embeddings matcher combining company name, position, and URL features for duplicate application detection. Architected entity assignment system linking companies to canonical entities with batch processing and transaction management. Developed URL cleansing pipeline normalising application links. Built Next.js 16 frontend with React Context state management and modular tab-based UI. Integrated Supabase for database operations with RPC functions for complex queries. Designed configurable threshold-based matching with real-time preview and export functionality.
Built with Bernard Lee



Estate Management System
04/2025
EMS (Estate Management System) is an all-in-one platform centralising contact management, expense tracking, mileage and time logging, and estate inventory management. I made EMS to help my family manage their estate.
Merkle Tree Implementation
03/2025
A Python implementation of a Merkle Tree for learning and experimentation.
Horse Racing Simulator
03/2025 - 04/2025
Designed and implemented a Java-based Horse Race Simulator. Featured multithreaded race execution for parallel processing and performance. Incorporated dynamic event handling to address real-time race conditions.
This Website
03/2025
My personal portfolio website showcasing my projects and experience.
2024
ESP32 Propulsion Firmware
10/2024 - 08/2025
Real-time embedded firmware for ESP32 propulsion control utilising dual-core architecture with FreeRTOS task separation. Designed modular submodule architecture with interface-based abstraction (dependency inversion) to decouple sensor management from communication layers. Implemented non-blocking inter-core communication via FreeRTOS queues, preventing sensor data loss during high-frequency command processing. Built automated build system with Arduino CLI for dependency management and recursive submodule handling. Developed JSON-based command protocol with ESP ID validation and ACK messaging. Architected sensor abstraction layer supporting configurable polling intervals and extensible sensor implementations.
Hyperloop Pod Communications System
09/2024 - 08/2025
Asynchronus python application to coordinate communication between ESP32s, Dashboard, FSM (Finite State Machine). Non-blocking architechture with priortiy-based messaging from API calls.