Senior Engineering Technologist | Reactive Programming Specialist | Open Source Contributor
Building reactive, real-time C# solutions with SignalR, MQTT, and industrial PLC integrations
- 🎖️ Microsoft MVP in Developer Technologies
- 🏛️ .NET Foundation Committee Member
- 🌟 OpenUK Honours List Recognition 2025
- 💼 Senior Technologist at AIC Solutions Ltd
- 🔧 Specializing in Reactive Extensions (Rx) for .NET
- 🏭 Industrial automation & PLC communication expert
- 🌍 Based in Reading, England
I'm passionate about creating elegant, testable, and reactive solutions for industrial and enterprise applications.
My work focuses on bridging the gap between industrial control systems and modern software architecture using Reactive Extensions.
To learn more about Reactive Extensions read the following online book Introduction To Rx.
|
ReactiveUI Owner / Core Team Member |
Reactive Marbles Owner / Core Team Member |
.NET Foundation Projects Committee Member |
Advanced MVVM framework for .NET - Contributor & Maintainer
| Repository | Description | Stats | Downloads |
|---|---|---|---|
| ReactiveUI | Functional reactive MVVM framework for all .NET platforms | ||
| ReactiveUI.SourceGenerators | Functional reactive MVVM framework for all .NET platforms | ||
| Refit | Automatic type-safe REST library for .NET | ||
| Akavache | Async, persistent key-value store | ||
| Splat | Cross-platform utilities & service location | ||
| ReactiveUI.Validation | Validation helpers for ReactiveUI apps | ||
| Fusillade | Opinionated HTTP library for mobile | ||
| Sextant | ReactiveUI navigation library | ||
| Primitives | High Speed Reactive Framework with Rx / R3 compatability for all .NET platforms |
Incubator for Reactive Extensions projects with UI focus — Contributor & Maintainer
| Repository | Description | Stats | Downloads |
|---|---|---|---|
| DynamicData | Reactive collections based on Rx.Net | ||
| CrissCross | Navigation framework for ReactiveUI | ||
| ObservableEvents | Source generator for events to observables | ||
| PropertyChanged | Lightweight property changed framework | ||
| CacheDatabase | Akavache reimplementation using SQLite | ||
| Extensions.Hosting | Microsoft.Extensions.Hosting for desktop apps | ||
| Mvvm | Lightweight MVVM abstractions |
Unified reactive drivers from IoT-DriverCore
| Repository | Description | Stats | Downloads |
|---|---|---|---|
IoT-DriverCore · IoT-Driver.S7PlcRx |
Siemens S7 PLC communication | ||
IoT-DriverCore · IoT-Driver.ABPlcRx |
Allen-Bradley PLC communication | ||
IoT-DriverCore · IoT-Driver.ModbusRx |
Modbus TCP, UDP, RTU, and ASCII | ||
IoT-DriverCore · IoT-Driver.TwinCATRx |
Beckhoff TwinCAT ADS communication | ||
IoT-DriverCore · IoT-Driver.MitsubishiRx |
Mitsubishi MELSEC PLC communication | ||
IoT-DriverCore · IoT-Driver.OmronPlcRx |
Omron FINS and serial PLC communication | ||
IoT-DriverCore · IoT-Driver.SerialPortRx |
Reactive cross-platform serial communication |
📡 MQTTnet.Rx Libraries
Reactive MQTTnet client, server, and industrial bridge extensions
📋 View All Packages
| Repository | Description | Stats | Downloads |
|---|---|---|---|
| MQTTnet.Rx | Client: MQTTnet.Rx.Client · MQTTnet.Rx.Client.Reactive |
||
| MQTTnet.Rx | Server: MQTTnet.Rx.Server · MQTTnet.Rx.Server.Reactive |
||
| MQTTnet.Rx | Allen-Bradley: MQTTnet.Rx.ABPlc · MQTTnet.Rx.ABPlc.Reactive |
||
| MQTTnet.Rx | Mitsubishi: MQTTnet.Rx.Mitsubishi · MQTTnet.Rx.Mitsubishi.Reactive |
||
| MQTTnet.Rx | Modbus: MQTTnet.Rx.Modbus · MQTTnet.Rx.Modbus.Reactive |
||
| MQTTnet.Rx | Omron: MQTTnet.Rx.OmronPlc · MQTTnet.Rx.OmronPlc.Reactive |
||
| MQTTnet.Rx | Siemens S7: MQTTnet.Rx.S7Plc · MQTTnet.Rx.S7Plc.Reactive |
||
| MQTTnet.Rx | Serial port: MQTTnet.Rx.SerialPort · MQTTnet.SerialPort.Reactive |
||
| MQTTnet.Rx | TwinCAT: MQTTnet.Rx.TwinCAT · MQTTnet.TwinCATRx.Reactive |
| Repository | Description | Stats | Downloads |
|---|---|---|---|
| Spectre.Console.Rx | Reactive extensions for Spectre.Console | ||
| XamlLEDControl | LED control for XAML applications | ||
| XamlConverters | Collection of XAML value converters | ||
| Localisation.WPF | WPF localization library | ||
| AppBarButton.WPF | AppBar buttons for WPF | ||
| BBCode.WPF | BBCode parser for WPF | ||
| AnimationRx | Reactive animations | ||
| HashTableRx | Reactive hash table implementation | ||
| ReactiveList | Reactive list implementation |
| Repository | Description | Stats | Downloads |
|---|---|---|---|
| ServiceInstaller | Windows service installer | ||
| CP.Nuke.BuildTools | Nuke build tools collection | ||
| VS.Squirrel | Visual Studio Squirrel add-in | Visual Studio Marketplace | |
| Velopack.UI | UI for Clowd.Squirrel | Repository releases | |
| Auto.Squirrel | Squirrel.Windows package manager | Repository releases | |
| Visual Studio Codex | Visual Studio Codex integration | Visual Studio Marketplace |
Model Context Protocol servers for agent memory, orchestration, UI automation, and reactive .NET development
| Repository | Description | Stats | Downloads |
|---|---|---|---|
| CodexComputerRun.MCP.Server | Windows desktop interaction server for Codex | ||
| CrissCross.MCP.Server | CrissCross guidance and project tooling server | ||
| Reactive.Agentic.Loop.Engineer | Persisted reactive agentic-loop engineering server | ||
| Reactive MCP Server | Reactive Extensions guidance server | ||
| Reactive.Multi.Agent.MCP.Server | Durable multi-agent orchestration server | ||
| ReactiveMemory.MCP.Server | Durable local memory server for coding agents | ||
| ReactiveUI MCP Server | ReactiveUI development guidance server | ||
| UIInspect.MCP | Windows UI Automation inspection server |
📊 CP.Extensions.Hosting Suite
Extension of Microsoft.Extensions.Hosting for desktop applications
📋 View All Packages
📊 CrissCross Navigation Framework
Multi-platform navigation framework for ReactiveUI
📋 View All Packages
| Repository | Description | Stats | Downloads |
|---|---|---|---|
| CrissCross | Core navigation — CrissCross |
||
| CrissCross | WPF integration — CrissCross.WPF |
||
| CrissCross | WPF UI controls — CrissCross.WPF.UI |
||
| CrissCross | WPF plotting — CrissCross.WPF.Plot |
||
| CrissCross | WPF WebView2 integration — CrissCross.WPF.WebView2 |
||
| CrissCross | WinForms integration — CrissCross.WinForms |
||
| CrissCross | Avalonia integration — CrissCross.Avalonia |
||
| CrissCross | Avalonia UI controls — CrissCross.Avalonia.UI |
||
| CrissCross | .NET MAUI integration — CrissCross.MAUI |
||
| CrissCross | Xamarin.Forms integration — CrissCross.XamForms |
I'm always interested in discussing reactive programming, industrial automation, or .NET development!






