PUBLIC WORK

Open Source

Tools and libraries built to fill real gaps. A few have found real adoption; all were built because I needed them.

Owned Projects

BifrostMCP

205 stars · 1,600+ VS Code installs

A VS Code extension that acts as an MCP server, exposing language server features directly to AI tools. Go-to-definition, find-all-references, call hierarchies, rename-symbol, and more — accessible to Claude, Cursor, and any MCP-compatible tool. AI tools can ask VS Code exactly where a symbol is defined instead of guessing.

AI coding tools work by reading text files and making guesses about code structure. VS Code already knows all of this precisely. This bridges that gap.

TypeScriptVS Code APIMCPLSP

Postman2CSharp

55 stars · 70 users/week

Generate a complete, organized C# API client project from a Postman collection. Interfaces, concrete implementations, all request/response types, zero external dependencies. Runs entirely in the browser — no data leaves your machine. Configurable serializer, nullability, error handling, retry logic, and more.

Writing C# API clients by hand from a Postman collection is tedious and error-prone. I needed this and could not find a free tool that did it well.

Blazor WASMC#.NET

NanoGPT .NET

41 stars

A C# port of Andrej Karpathy's nanoGPT. Full attention paper architecture, trained on Shakespeare's complete works. Built to understand transformers from the inside — implementing it yourself is a different kind of understanding than reading about it.

The best way to understand how attention and transformers actually work is to implement one from scratch. Karpathy's nanoGPT is the cleanest reference; porting it to C# forced every detail.

C#.NET

EasyCsv-Dotnet

27 stars

A library to make reading, writing, and manipulating CSVs easier in C#, built on top of CsvHelper. Reduces boilerplate for common CSV operations.

CsvHelper is excellent but verbose for simple operations. This wraps it with a cleaner API for the 80% case.

C#.NET

OneOf.TypeExtensions

10 stars

A source generator for the OneOf discriminated union library. Generates extension methods so you can write IsInt() and AsString() instead of IsT0() and AsT1(). Small ergonomic improvement that makes OneOf significantly more readable in practice.

IsT0() and IsT1() are unreadable at callsites. Type-named methods cost nothing at runtime and make code much clearer.

C#Source Generators
Contributions