Technical Writing.
Notes on developer products, software systems, and open source.
Selected writing
2026
Writing a native VLC plugin in C#
Explore VLC's extension points and build a native plugin in C# with .NET Native AOT, using a Windows proof of concept.
2025
Introducing pkgstore.io
A curated directory of commercially backed .NET packages - making discovery easier for developers and sustainable for publishers.
2020
On the psychology and dynamics of OSS: passion, burnout and (im)balance
A maintainer's view of open-source funding, burnout, mentorship, and the need for healthier ways to share project ownership.
Latest writing
C vs C#: racing VLC's Gaussian blur
A real VLC video filter, ported line by line to C# and raced against the original C inside VLC 4, then optimized on both sides, with byte-identical output throughout.
Read articleAll writing
- Introducing VLC for Unity - Linux Edition
- Writing a native VLC plugin in C#
- Introducing pkgstore.io
- Introducing LibVLCSharp for MAUI
- Introducing VLC for Unity - macOS Edition
- Introducing VLC for Unity - iOS Edition
- Unity's Open-Source Double Standard: the ban of VLC
- Milestone: 2 million downloads for VideoLAN .NET NuGet packages
- Introducing VLC for Unity - UWP Edition
- Introducing LibVLCSharp for WinUI
- The Good Parts of LibVLC (ebook)
- Introducing VLC for Unity - Android Edition
- Milestone: A million downloads for VideoLAN packages in the .NET ecosystem
- Introducing LibVLCSharp Commercial Licensing
- Milestone: Half a million downloads for VideoLAN packages in the .NET ecosystem
- On the psychology and dynamics of OSS: passion, burnout and (im)balance
- Calling all LibVLC bindings maintainers and users!
- Gracefully surfacing asynchronous C APIs to .NET
- Torrents and multimedia streaming with LibVLCSharp and MonoTorrent
- Introducing LibVLCSharp for Unity3D
- MediaPlayerElement: Plug and play and crossplatform UI video control
- Crossplatform local network browsing and media playback
- LibVLCSharp 3.0: The first stable release of VideoLAN's crossplatform .NET binding for LibVLC
- Fun with crossplatform gestures and 360 videos
- PulseMusic - music player design with Skia and LibVLC
- Cross-platform RTSP Mosaic views with LibVLCSharp
- High performance, cross-platform media streaming with libvlc and Chromecast
- How to record an HLS stream with LibVLCSharp and .NET Core
- Introducing LibVLCSharp