About
I’m Grant Totinov, a software engineer from Bulgaria with a Master’s degree in Computer Engineering. I’m a member of the .NET Foundation and a Microsoft Q&A Community Champion, and I spend a good part of my free time contributing to open source.
I also build two open source projects of my own. AI Exporter is a free browser extension that saves AI chats from ChatGPT, Claude, Gemini and twelve other sites as PDF, Word, Markdown and more. PixelForge is an MIT image processing library for .NET, published on NuGet.
Merged so far:
- ASP.NET Core
- #68834: validate the COSE
alg/crvcombination when decoding a passkey public key - #67539:
SignInManagerreturnsSignInResult.Failedfor an expired passkey session challenge - #67742: authorization metadata guard consistency
- #66772 and AspNetCore.Docs#37224: documenting antiforgery HTTP method limitations
- #66747: clearer default Identity emails for people who didn’t request them
- #68834: validate the COSE
- Spectre.Console
- Tiptap
- #7832: forward
getReferencedVirtualElementin the React drag handle
- #7832: forward
Each of these has a write-up under Contributions.
What this blog is
Write-ups of things I had to understand properly before I could fix them. Each post links to the PR, the issue and the spec it’s based on, so you can check my reading against the source.
If something here is wrong, please tell me. Open an issue on the blog’s repo or write to me on LinkedIn.