github.com/IDisposable
Vitruvian-style pencil illustration of Klaymen, from The Neverhood Klaymen — MK1

Marc Brooks

(former) Director of IT & Software Engineering Lead — 1904labs / Turnberry Labs

I fix things at the protocol layer: like a path-traversal hole in a 57.4k-star media server, USB gadget recovery in remote-KVM firmware, allocation behavior in a logging library, sort order in the .NET runtime's JSON serializer. I maintain a JS library installed 1,013,664 times a month. I know networking, DNS, and AI inside and out.

~$ git log --author=IDisposable --since="1 year ago" --stat

Trailing twelve months, public activity only.

~$ cat SKILLS.md

Languages

C#GoTypeScript JavaScriptC++Rust PHPShell / PowerShell

Deployment & Infrastructure

.NET / ASP.NET runtimeWindows Android & Android TVEmbedded Linux DockerCloudflare Workers / KV / DNS GitHub ActionsSQLite

AI-Augmented Engineering

Claude Code plugin authoring Agentic workflow design Architecture decision records

Builds Claude Code plugins (a transcript exporter, an Android-dev plugin), applies human-centered agile practice to agent workflows (hcd-agile-ai), and runs shipped work through Claude as a documented engineering discipline — the Mind the Gaps plugin carries 20+ architecture decision records written alongside the code that explain every non-obvious call.

~$ ls -la contributions/jellyfin/

Jellyfin open-source media server · 57.4k★

Finds what's missing across a library — absent collection entries, episodes, cast/crew filmographies, recommendations — and builds a fill-the-gaps dashboard with where-to-watch links. Multi-ABI plugin, own injected web UI, 880+ tests.

OCRs embedded VobSub (DVD) and PGS (Blu-ray) image-based subtitles to SRT — pure managed code, Subtitle Edit-compatible pattern databases.

Adds JustWatch external IDs and deep-links across movies, series, seasons, and episodes, with an opt-in task to auto-resolve them.

A plugin for surfacing another Jellyfin server's library as remote/federated content.

jellyfin/jellyfincore · 22 merged
  • Fixed a path-traversal exposure in the plugin loader
  • Prevented ffmpeg from hanging while extracting subtitles
  • Switched the SQLite connection cache to Private and sped up bulk related-info deletes in UpdateOrInsertItems
  • Parsed provider IDs from season/episode folder and file names
  • Widened accepted rating formats and sorted embedded collections in NFO files
+ 17 more, including two DE-localization test fixes, a LiveTV guide backdrop fix, and a MusicBrainz migration fix
jellyfin-androidtv plugin-tvdb plugin-tvmaze plugin-playbackreporting (security fix)

~$ ls -la contributions/jetkvm/

JetKVM open-source remote-KVM hardware · 5.2k★
jetkvm/kvmfirmware + UI · 64 merged
  • Reworked keyboard management for device-side modifier-state tracking
  • Fixed USB gadget recovery when attached after power-up and after transfer errors
  • Restructured the LLDP service for safer state management
  • Localized the client UI end to end with inlang/paraglide-js, plus the tooling that keeps translated language files sorted
  • Improved OTA update reporting and cut UI load time
+ 59 more: IPv6 toggle, route/gateway handling, paste-latency reduction, dependency and CI upkeep
jetkvm-website jetkvm-cloud-api

~$ ls -la contributions/go/

Go
sdio-goshipped via WinGet

A from-scratch Go rewrite of Snappy Driver Installer Origin's C++/VCL engine — hardware detection, driver-pack indexing and matching, install logic, and an interactive terminal UI. Packaged and published as IDisposable.SDIGo.

rs/zerologzero-alloc JSON logger · 12.5k★ · 10 merged
  • Added an Objects field type and array handling for IPAddr/IPPrefix
  • Sanitized journald keys before logging
  • Fixed Event and Array pool objects not being cleared on return
  • Fixed a dropped context.Context in Object/EmbedObject

~$ ls -la contributions/dotnet-runtime/

.NET Runtime
dotnet/runtime18.3k★ · 25 merged
  • Optimized System.Text.Json's EnumFieldInfo sort path and unified how JsonDocument/Utf8JsonReader handle DateTime/DateTimeOffset
  • Simplified the regex engine's KeyAnalyzer and coalesced identical constant WordCategories
  • Fixed the declared type of the custom comparer LINQ's MaxBy/MinBy return
  • Exposed useful constant values on TimeSpan
  • Cleaned up ICU's normalizeLocale for the mono browser target
  • Added missing WebSocket close statuses and a clearer AmbiguousMatchException message
+ 19 more: Reflection.Emit signature-helper simplification, a DirectoryServices search-result fix, ZipFile and TimeSpan cleanups, typo and test fixes
dotnet/docs dotnet-api-docs dotnet-performance

~$ ls -la projects/personal/

Personal Projects
dom-to-image-more↓ 1M/mo · ★ 679

Maintains the actively developed continuation of a stalled DOM-to-image library. Shipped SSR safety, iframe and image-resolution fixes, pseudo-element handling, cross-origin font embedding, and a pluggable logger/request-interceptor API. Published to npm under his own name — nearly a million installs last month.

A WebFinger handler on Cloudflare Workers and KV, used to verify a Mastodon identity without running a server.

Pulls plain text out of anything with a Windows IFilter installed — a C++ COM component plus a C# wrapper library.

Dynamic★ 9

A lightweight-code-generation library that speeds up .NET reflection for constructors, members, and indexers.

A Claude Code plugin that exports a session transcript to Markdown — rewritten from Python to Go to drop the runtime dependency entirely.

~$ ls -la contributions/other/

Others

Merged a fix to Microsoft's Rust-based coreutils-for-Windows project.

winget-pkgspackaged sdio-go

Published IDisposable.SDIGo to the Windows Package Manager community repository.