Most of these started as something I wanted to exist. Each one links to what is running and to the source, so you can read the code rather than take my word for it.
A learning platform teaching AI engineering to .NET developers.
Lessons are MDX, the curriculum is a typed TypeScript manifest whose invariants fail the build rather than the page, and progress, notes, quiz attempts and bookmarks live in localStorage. There is no database, no API and no auth — the whole site is prerendered static files, which is the constraint that makes the content model interesting.
A personal finance tracker, built out across an API, a web app and mobile.
The project I keep returning to: a C# backend over SQL Server for accounts and transactions, a Next.js web client, and native/mobile clients alongside it. Started as a Blazor app and has been rebuilt as the stack underneath it earned its keep.
An AI-powered voice chat app for astrological conversation.
Speech in, speech out, with a model in the middle held to a persona and a subject. The interesting part is not the model call — it is latency, turn-taking, and deciding what the app does when the answer is wrong.
A minimal tracker for challenges you set yourself.
An on-device Flutter app: a floor rather than a goal, streaks that are a record instead of a punishment, and no account to sign into. Nothing it stores leaves the phone.