Scott Sau

Developer based in Waterloo, Ontario

I’m a recent Computer Science graduate from Western University with hands-on experience across web, mobile, and desktop development. Passionate about designing robust systems, intuitive user experiences, and solutions built around real problems.

Download Resume

Projects

ChordSenseJune 2023

Kotlin Android SDK XML Material Design 3 SoundPool RevenueCat
ChordSense screenshot
ChordSense screenshot 2

ChordSense is an interactive music theory app with a chord builder and progression sequencer, shipped natively on both Android and iOS. The app allows users to explore chords and scales through a visual piano interface with low latency audio playback. By modifying variables such as the root note, quality, and upper extensions, users can immediately see how those changes affect the underlying structure of the chord. I built the app while I was beginning tolearn music theory myself, which shaped the app’s focus on intuitive exploration and experimentation with chords. The goal was to create an application where users can learn through experimentation without feeling overwhelmed by terminology or rules. For myself, the project served not only as a personal tool for mastering chord structures, but also as an exercise in working with platform-specific constraints, designing an intuitive user experience, and shipping a production-ready app with purchase handling.

decknet.up.railway.appApril 2026

Python FastAPI Next.js TypeScript PostgreSQL Redis Docker scikit-learn XGBoost
DeckNet screenshot
DeckNet screenshot 2

The DeckNet project is a full-stack analytics platform for Clash Royale, a popular real-time strategy game. The game follows a 1v1 format in which players battle using a pre-selected eight-card "deck". Because cards are specialized, differences in deck composition can give one player a theoretical advantage over the other. Existing platforms offer matchup data comparing decks/strategies, however these rely on aggregating historical win rates and are thus limited to popular decks with large sample sizes. DeckNet addresses this limitation by using a machine learning approach to model card interactions between decks, providing predictive matchup insights that generalize across arbitrary deck configurations. Match data was scraped from the game's official API and stored in a PostgreSQL database, which serves as the source for both model training and runtime statistics.The final model is a multi-layer perceptron trained on over 2.5M+ high-level matches. It is deployed behind a backend service and made accessible through a web application, allowing users to input deck combinations and view predicted matchup ratios. The application also display statistics for popular cards and strategies, providing actionable insights to players.

simple-midi.comFebruary 2026

React Vite WebCodecs Canvas 2D Web Audio API MediaBunny
simple-midi.com screenshot
simple-midi.com screenshot 2

SimpleMIDI is a client-side web application that transforms MIDI files into high-quality piano roll animations. MIDI is the protocol for sequencing music digitally, encoding data such as pitch, timing, and velocity. In most music production software, MIDI note data is visualized and edited through a piano roll interface, which maps time across the horizontal axis and pitch across the vertical axis. Musicians who share digitally sequenced music online often post videos of the piano roll synchronized with the audio, allowing viewers to both hear and visually follow compositions. I've seen many of these videos produced by screen-recording the digital audio workstation (DAW), an approach that tends to capture unwanted visual clutter such as toolbars and other interface elements in the software. As a hobbyist musician, I wanted to create a streamlined way to create these types of videos with cleaner, more polished visuals. SimpleMIDI achieves this by running entirely in the browser, allowing users upload their MIDI and audio files and instantly generate customizable, MP4-exportable videos.

MIDIsequencerDecember 2025

Python Pygame FluidSynth Mido Windows API
MIDIsequencer screenshot
MIDIsequencer screenshot 2

The MIDIsequencer project is a desktop MIDI composition tool built around a multi-track piano roll interface. The sequencer supports multiple independent instrument tracks and uses FluidSynth for SF2 synthesis. Notes can be written manually through the editor or recorded live from an external MIDI controller, and projects can be imported from or exported to standard .mid files for interoperability with other software and DAWs. The motivation behind the project was to create a composition tool which keeps the writing process separated from the production stage. Modern DAWs are powerful but surface a lot of parameters at once, such as mixing, effects, sound design, arrangement. In my own experience, this can sometimes pull me out of writing and slow my workflow down. MIDIsequencer is deliberately limited to MIDI editing so the focus stays on notes and structure, with production handled later in a full DAW once the ideas are there. The project gave me an opportunity to explore technical challenges like low latency MIDI input and audio output handling on dedicated threads, precise playback timing using a PPQ-based clock, efficient efficient data storage and access, and building a responsive UI.

Contact