George Wall ®

Work · Open source

Proof, not a project grid.

Tools that move failures toward the keyboard, full-stack systems built across the boundary, and the complete public archive behind them.

11 selected projects · 14 public repos

Flagship work

The analysers behind the promise.

Most of the open-source work sits just before the mess: analysers, source generators and CLIs that make bad code complain early, where it is still cheap to fix.

LINQ001 intercepted

Compile-time safety · EF Core

LinqContraband

A Roslyn analyser that reads your LINQ the way the database will. N+1 queries and client-side evaluation get caught in the editor, not after a slow page has annoyed everyone.

LINQ001

Materialising before filtering pulls the whole table into memory.

Before
                db.Orders
  .ToList()
  .Where(o => o.Total > 1_000)
              
Quick fix
                db.Orders
  .Where(o => o.Total > 1_000)
  .ToList()
              

The database filters; the editor catches the expensive shape before review.

Install package GitHub
DILIFETIME001 intercepted

Compile-time safety · DI

DI Lifetime Analyzers

Captive dependencies, leaked scopes, lifetime mismatches: the bugs that look fine in tests and then embarrass you under load. This catches them while you type, with zero runtime overhead.

DILIFETIME001

A singleton captures a scoped dependency and quietly extends its lifetime.

Before
                AddSingleton<ReportService>()
AddScoped<AppDbContext>()
              
Quick fix
                AddScoped<ReportService>()
AddScoped<AppDbContext>()
              

The container graph becomes a compile-time contract instead of a runtime surprise.

Install package GitHub
CANCEL001 intercepted

Compile-time safety · async

CancelCop

A focused analyser for CancellationToken propagation across handlers, EF Core, HTTP and Minimal APIs. Cooperative cancellation, enforced, with code fixes that wire the token for you.

CANCEL001

A cancellation token reaches the handler, then disappears at the database call.

Before
                Task Handle(CancellationToken ct)
  => db.SaveChangesAsync();
              
Quick fix
                Task Handle(CancellationToken ct)
  => db.SaveChangesAsync(ct);
              

The code fix wires cooperative cancellation through the whole call chain.

Install package GitHub
04 selected work

Compile-time safety · mapping

AutoMapper Analyser

AutoMapper’s convenience hides its sharpest edge: the mapping you forgot. This flags missing and misconfigured maps at build, before they become a runtime shrug.

Install package GitHub
05 selected work

Developer tooling · CLI

CPMigrate

Move an entire .NET solution onto Central Package Management without doing diff archaeology by hand. It checks dependency health, migrates carefully, and rolls back when reality disagrees.

Install tool GitHub
06 selected work

Source generation · MVVM

NotifyGen

Add [Notify], delete the boilerplate. A source generator that turns fields into INotifyPropertyChanged-aware properties at compile time: MVVM with less ceremony and no runtime tax.

Install package GitHub

The range

Every layer, one pair of hands.

Ten years in fintech buys the whole map. The same person tuning the grid render also wrote the calculation engine underneath it — and the Kafka consumer feeding them both.

React/TS UI ASP.NET API Kafka events SQL · Redis
src/features/schemes/SchemeGrid.tsx TSX
const { data: schemes = [] } = useSchemesQuery(); return (  <AgGridReact rowData={schemes}    columnDefs={columns} animateRows />);
tsc --strict · 0 errors
The front Data-dense React + TypeScript — RTK Query, AG-Grid, Recharts. Frontends built from scratch for institutional users who read numbers for a living.
src/Engine/LiabilityEngine.cs C#
var curve = DiscountCurve.From(market, asOf); var presentValue = scheme.CashFlows.Sum(cf =>    cf.Amount * curve.DiscountFactor(cf.Date));
LinqContraband ✓ · 0 diagnostics
The middle C# calculation engines — liability metrics, discount curves and funding ratios. Right answers, every time, with an audit trail.
src/Messaging/OutboxRelay.cs C#
await outbox.Enqueue(tradeRebooked, tx, ct);await tx.CommitAsync(ct);// relayed to Kafka after commit
CancelCop ✓ · token propagated
The plumbing Event-driven .NET on Kafka — transactional outbox, idempotency keys, schema registry. The plumbing that is not allowed to lose money.

The archive

The rest, straight from GitHub.

This list reads the public GitHub API in your browser. No server, no token. Snapshot · Jul 2026

DependencyInjection.Lifetime.Analyzers Zero-overhead Roslyn analyser for captive dependencies, leaked scopes and DI lifetime mismatches. C# ★ 10 yesterday LinqContraband Roslyn analyser for EF Core queries: catches N+1 patterns and client-side evaluation before they ship. C# ★ 9 2 days ago CancelCop.Analyzer Roslyn analyser for CancellationToken propagation across handlers, EF Core, HTTP and Minimal APIs. C# ★ 4 today automapper-analyser Roslyn analyser for AutoMapper maps, catching missing and misconfigured mappings at build time. C# ★ 4 yesterday HttpClient.Resilience.Analyzers Roslyn analysers for HttpClient lifetime, outbound resilience, response ownership and safe retries. C# ★ 3 2 days ago NotifyGen C# source generator for INotifyPropertyChanged boilerplate. Add [Notify], get the property wiring. C# ★ 2 2 days ago AOEOverlay Tauri desktop overlay for live Age of Empires IV match data, built with TypeScript and React. TypeScript ★ 2 2 months ago CQRSPrototype Clean-architecture CQRS reference using MediatR, DDD and the transactional outbox pattern. C# ★ 2 8 months ago CPMigrate CLI for moving .NET solutions to NuGet Central Package Management, with dependency checks and rollback. C# ★ 1 yesterday ConfigContraband Roslyn analysers for .NET Options and appsettings, so broken configuration does not wait for deploy day. C# ★ 1 2 days ago georgewall-site Personal portfolio — georgewall.uk. Static Astro site, repos fetched live from the GitHub API, deployed on Vercel. Astro today DuplicatePhotoHandler Fast duplicate-photo finder with a Rust core and a React/Tauri desktop interface. TypeScript 6 days ago fleet-commander-site Public website, support, privacy, and terms pages for Fleet Commander on the App Store. HTML 9 days ago aoe4-overlay-rs Rust/Tauri rewrite of FluffyMaguro's AoE4 Overlay - live match overlay, build orders, OBS streaming HTML last month