Senior .NET / enterprise systems developer focused on legacy modernisation, practical GenAI adoption, agentic workflows, and secure AI-assisted delivery.
My current portfolio explores how LLMs can be used safely and usefully in corporate software delivery: understanding existing systems, recovering requirements, defining interfaces, generating structured artefacts, integrating deterministic business rules, and building auditable AI-assisted workflows rather than black-box demos.
It also includes deliberately small legacy-enterprise refreshers, including WPF and COM Interop, because useful delivery often means bridging modern tooling into systems that are already running the business.
- maf-doc-processor - .NET 10 document-processing API built on Microsoft Agent Framework, with multimodal classification and extraction, typed workflow routing, composite multi-document capture, deterministic validation and policy, bounded repair and concurrency, usage/correlation telemetry, generated OpenAPI, and an accessible correction UI.
- interop-demo - classic .NET Framework COM Interop demo with a VBScript client, registration scripts, and explicit 32-bit/64-bit automation notes.
- sample-agent - portable email-to-report agent pattern that turns unstructured business requests into governed report outputs with clarification, permission, generation, response-drafting, and audit steps.
- loop-design-build - provider-agnostic harness for bounded human-in-the-loop agentic development, using Git-tracked markdown state to keep progress auditable and stop on ambiguity.
- Sample-NYCTraffic-Refresh - legacy-refresh case study showing how the loop-design-build harness supported system discovery and delivered a Node/React/SQLite operational data exploration tool in narrow, reviewable slices.
- office-vba - Excel and Access modernisation lab showing source-controlled VBA, object inventories, characterisation tests, generated SDLC artefacts, packaging scripts, and .NET migration spikes.
The earlier csharp-semantic-document-processor remains public as a frozen, deprecated Semantic Kernel predecessor. Together the repositories show the rewrite from Semantic Kernel to Microsoft Agent Framework and the subsequent extension of the system through an auditable agentic-coding delivery process.
- How to separate LLM reasoning from deterministic software responsibilities.
- How LLMs can support legacy system discovery, interface extraction and characterisation before modernisation work begins.
- How old-enterprise integration boundaries such as COM automation can be isolated, tested and documented.
- How to put typed contracts, policy checks, tests, and audit trails around AI-assisted workflows.
- How agentic development can be made observable and interruptible rather than treated as autonomous magic.
- How enterprise teams can evaluate practical AI adoption through small working slices, not slideware.
- How product-facing AI concerns such as prompt injection, data exfiltration, access control, auditability, and provider portability affect architecture.
- Secure AI-assisted SDLC workflows.
- LLM-assisted legacy discovery, reverse engineering and modernisation planning.
- Agent orchestration patterns that remain portable across tooling vendors.
- C#/.NET integration with LLM and multimodal model APIs.
- Governance boundaries between internal engineering AI use and AI embedded in delivered products.
- Turning vague business requests into structured, testable, maintainable systems.
