Vancouver, B.C.

Hello, I'm Leo

This website hosts some of my projects, thoughts, and photos.

About

Portrait of Leo Chang

I'm a software engineer based out of Vancouver, Canada. I'm currently building large scale machine learning platforms at Mastercard to power the products that prevent fraud on billions of transactions per year.

Besides tinkering with tech, you will find me outdoors hiking, snowboarding, playing ultimate, and taking photos.


Projects

citytap

Svelte · TypeScript · MapLibre GL

A daily geo-guessing game on a borderless satellite globe: five cities a day, tap where each one is, score by distance. Puzzles generate per-date with no backend, plus practice mode, shareable results, challenge links, and a heat-map stats page.

Play it →

Bloom Filter Spellchecker

JavaScript

A spell-checker on a bloom filter: each word runs through 7 hash functions and checks the corresponding bits. Fits in 625KB, versus ~8.5MB to store 479,000 English words outright.

Try it →

Snapshot

Swift · Xcode

An iOS camera app built through an iterative design process, exploring HCI indicators that help people recognize and improve the composition and exposure of a photo before they take it.

Source → Demo →

DistributedDJ

Go · Azure

A distributed streaming platform where connected peers contribute music to a shared, synchronized stream. Voting for the next song runs on a modified two-phase-commit protocol with timeouts to preserve liveness.

Source → Write-up →

BFS

Go

A simple file system built and stored on a blockchain — eventually consistent and visible to all users, with file creation and append operations recorded as the transactions in each block.

Source →

Yield Farm Harvester Bot

Go · Ethereum

Automation in Go that harvests and swaps tokens accrued as liquidity-pool interest, averaging 3% daily returns — pricing tokens against RPC nodes and routing ERC20/BEP swaps through decentralized exchanges.

Source →

Photos

scroll →