Scott's Place


Lea is an event aggregator designed to be lightweight and thread-safe. It maintains only weak references to the subscriber callback so that it never blocks object destruction. (code repository )


This libary abstracts communication with the remote control API in the Dorico music scoring application. (code repository )


A tool for analyzing musical overtone sequences.

Implemented with Angular 17/Typescript (code repository )

Sea Battle Thumbnail
When learning a new language or framework I usually implement one of the following games as a learning exercise. These projects touch on several aspects of programming: layout and componentization, data structures and data manipualtion, as well as eventing.

Sea Battle

An adaptation of a classic 2-player naval warfare game, this SSR web app uses SignalR to exchange game events and data between multiple clients.

Implemented with Blazor Server/C#/.NET 8 (code repository )

Sea Battle Thumbnail


This is an old game from the 70s/80s. The map generation is a good way to learn about a languages' data structures. The game also generats events that requires event handling.

Implemented with React/Typescript (code repository )

Implemented with Blazor (WASM)/C# (code repository )

Wumpus Thumbnail


This game is great for playing with nested components.

Implemented with React/Typescript (code repository )

Wumpus Thumbnail