Open Source

Two projects I actively build and maintain in public.

I ship these under the MIT license because I use them myself daily, and I'd rather fix bugs in the open than maintain a private fork nobody else benefits from. Both are under active development.

PDFStudio
The PDF toolkit Adobe doesn't want you to have

PDFStudio is a cross-platform PDF toolkit built on .NET 10 and Avalonia. It handles merging, splitting, redaction, digital signatures and fillable AcroForm generation through a native desktop app and a scriptable CLI that share the same underlying service layer, so anything you can do by hand you can also automate. There's also an author mode that compiles Markdown straight to a styled PDF, including Mermaid diagrams, via a headless Chromium rendering pipeline.

I started building it because Acrobat Pro charges a monthly subscription for operations that the PDF spec (ISO 32000, public since 2008) has documented for well over a decade. PDFStudio gives you the same capability for free: AES-128/256 encryption, PKCS#7 digital signatures with your own self-signed certs, form flattening, metadata editing, watermarking. MIT licensed, no account required.

C#, .NET 10, Avalonia UI, AvaloniaEdit, PdfSharp, PuppeteerSharp, Docnet.Core (PDFium), Markdig, YamlDotNet, SkiaSharp, Mermaid.js, xUnit, GitHub Actions

Agentic Memory
Long-term memory for AI coding agents

Every coding assistant I've used forgets everything the moment the session ends, so it re-reads and re-explains the same codebase to itself over and over, which wastes tokens and time. Agentic Memory fixes that by giving agents like Claude, Copilot and Cursor a memory that actually persists: a semantic search layer built on SBERT embeddings via ONNX Runtime, where recall strengthens with use and decays when it doesn't, backed by real compiler analysis instead of guesswork. It uses Roslyn for C# and the TypeScript compiler API for JS/TS, so it resolves actual symbols and dependency graphs rather than pattern-matching on text.

It also runs a local Phi-4-mini model, int4-quantized with a 128K context window, entirely on-device for code summaries and chat, so nothing about your codebase has to leave the machine. Everything is exposed through an MCP server, a REST API and a small React dashboard, so it drops into whatever toolchain you're already using.

C#, .NET 10, ASP.NET Core, LiteDB, ONNX Runtime, ONNX Runtime GenAI, Phi-4-mini, SBERT (all-MiniLM-L6-v2), Roslyn, TypeScript Compiler API, ClearScript, Model Context Protocol SDK, React 18, Vite, Tailwind CSS, xUnit