Projects

See my past and current projects.

Currently Working On

LucidTrack Dashboard
1 / 4

LucidTrack

05/2025 - Present

Current

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.

SupabaseNext.jsTailwind CSSVercel
Chronalog Admin Interface

Chronalog

01/2026 - Present

Current

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.

Next.jsTypeScriptTailwind CSSMDX

Past Projects

Hanki Flashcard Application

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.

Next.jsReactTypeScriptTailwind CSS
University Grades Tracker Dashboard

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.

Next.jsReactTypeScriptTailwind CSS

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.

PythonJupyter Notebook

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

TypeScriptWeb Extensions APIOAuth2Safari Web ExtensionsChrome Extensions
Job Data Cleanser Dashboard

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

PythonFastAPINext.jsTypeScriptSupabaseSentence Transformersscikit-learnRapidFuzz
Estate Management System Dashboard

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.

SupabaseNext.jsTailwind CSSVercel

Village Blaster

04/2025

A silly 3D game where cube people run for their lives while you practice your aim. Built with Cursor.

Three.jsJavaScript

Merkle Tree Implementation

03/2025

A Python implementation of a Merkle Tree for learning and experimentation.

Python

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.

JavaSwing

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.

ESP32ArduinoC++FreeRTOS

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.

PythonFastAPI

This Website

03/2023 - Present

My personal portfolio website showcasing my projects and experience.

HTML5CSS3JavaScript