Side projects and open-source work. Most of what I build falls into two camps: tools that fix something annoying I ran into at work, and experiments that let me go deeper on something I wrote about.
Projects
-
clipboard-history
activeA super lightweight clipboard history manager for macOS built with only built-in dependencies - two scripts running locally. Browse and paste anything you've copied recently, triggered from any app via an Automator Quick Action. No third-party apps, no cloud sync, no need to trust anyone with sensitive data.
Python Shell macOS Automator -
ContactBook
referenceReference implementation of the CQRS pattern in ASP.NET Core Web API. Separates read and write models so each can scale and evolve independently - Commands mutate state, Queries retrieve it, with no crossover. The companion code for the blog post on CQRS in ASP.NET Core.
C# ASP.NET Core CQRS .NET -
babylon.js-shape-extrusion
referenceAn experiment in interactive 3D in the browser - draw a 2D polygon and extrude it into a 3D solid using Babylon.js. Covers the mesh generation and manipulation APIs that sit beneath most Babylon.js 3D scenes.
TypeScript Babylon.js WebGL 3D -
Azure Membership Scheme
maintainedHazelcast membership scheme for automatically discovering WSO2 product cluster nodes on Azure virtual machines. Supports both the Azure REST API and Azure Java SDK for IP discovery.
Java Azure Hazelcast WSO2 -
Angular Search Bar with RxJS Debounce
referenceA production-ready search bar component in Angular using RxJS debounceTime, distinctUntilChanged, and switchMap - avoiding unnecessary API calls as the user types.
Angular TypeScript RxJS -
This website. A Jekyll blog redesigned from Lanyon into a custom editorial theme - Ink & Signal palette, Inter + Instrument Serif typography, dark mode, and structured content via Jekyll data files.
Jekyll Liquid CSS Ruby GitHub Pages