Projects

I have a background in fullstack web development, working mostly in TypeScript, Node.js, and SvelteKit. Here are some things I've built.

See my GitHub for all public work.

Virtual Olympiad Science Olympiad Platform & APIs

A suite of platforms and tools for Science Olympiad competitors. Includes a large indexed database of categorized contest problems, an online judge and community platform, and a real-time multiplayer arena where users compete on auto-generated problem sets.

SvelteKit · React · Tailwind · SASS · WebSocket · Express · Supabase · Docker · Cloudflare · Node · Typescript

CLVSA Variational Seq2Seq ConvLSTM with Attention

Implementation and extension of Wang et al. (2019)'s CLVSA model for financial time-series prediction. Combines a ConvLSTM seq2seq design with self- and inter-attention, a variational component with KL divergence regularization, and a training pipeline evaluated on OHLCV equities and futures data.

PyTorch · Hugging Face · Pandas · Scikit-Learn · Python

CERXA Volumetric Raytracing Engine

A WebGL volumetric raytracer written in GLSL from scratch. Supports ambient, diffuse and specular lighting, hard shadows, a free camera, and distance-estimated fractal rendering.

WebGL · GLSL · Shadertoy · Vanilla JS

UBC ICPC University Club Website

Official website for the UBC ICPC competitive programming club. Includes an authenticated CMS for content management, backed by SQLite and self-hosted with Docker.

SvelteKit · Figma · Tailwind · SQLite · Docker · Cloudflare · Node · Typescript

Sap Pathtracing Engine

A Java pathtracing engine written from the math up, designed to be readable and easy to extend. The code maps closely to the underlying rendering theory, built for learning.

Java Swing · JUnit · Maven · Java

BrawlTrack Statistics Tracker

Statistics tracker for the mobile game Brawl Stars. Periodically syncs with the public API to track progression over time, displayed in a custom UI styled to match the game. Once used by 10+ esports organizations and over 4000 players.

Embedded JS · Express · MongoDB · Node

Minesweeper Battles Multiplayer Online Game

Online minesweeper with a multiplayer twist. Host public/private games and face off in live minesweeper, solving the same board side-by-side. Clicking a bomb penalizes with a short time freeze.

P5.js · jQuery · Express · WebSocket · Node

charlesran.com · 2020–2026