George Wall ®
№ 01 London MMXXVI Open source & selected works

Full-stack developer · Financial services

Catching bugs before they ship.

I'm George — a developer in financial services who builds the unglamorous things that keep software honest: Roslyn analyzers, developer tooling, and iOS apps. The kind of work that moves a failure from a 3am production incident to a red squiggle in your editor.

Public repos
21
GitHub stars
33
Building since
2021
OrdersReport.cs LINQ001
var recent = db.Orders
    .ToList()
    .Where(o => o.Total > 1_000)
    .OrderByDescending(o => o.Date);
Client-side evaluation. The whole table is pulled into memory before filtering. Push the predicate to the database. Quick fix: remove .ToList()
Fig. 1 — LinqContraband stops an expensive query at compile time.

Selected work

Things I built to stop other things breaking.

Most of my open source lives in one place: the moment just before a bug becomes production's problem. Analyzers, source generators and CLIs that turn runtime surprises into compile-time certainty.

Compile-time safety · EF Core

LinqContraband

A Roslyn analyzer that reads your LINQ the way the database will — and refuses to let N+1 queries and client-side evaluation reach production. The expensive mistakes get caught at the red squiggle, not in the incident channel.

NuGet GitHub

Compile-time safety · DI

DI Lifetime Analyzers

Captive dependencies, leaked scopes, lifetime mismatches — the bugs that survive every unit test and surface at 3am under load. This catches them while you type, with zero runtime overhead.

NuGet GitHub

Compile-time safety · async

CancelCop

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

NuGet GitHub

Compile-time safety · mapping

AutoMapper Analyzer

AutoMapper's convenience hides its sharpest edge: the mapping you forgot. This flags missing and misconfigured maps at build, turning a whole class of runtime exceptions into a wavy underline.

Live GitHub

Developer tooling · CLI

CPMigrate

Move an entire .NET solution onto Central Package Management without the manual diff archaeology. It analyses dependency health, migrates safely, and rolls back when reality disagrees.

Live GitHub

Source generation · MVVM

NotifyGen

Add [Notify], delete the boilerplate. A source generator that turns fields into INotifyPropertyChanged-aware properties at compile time — MVVM without the ceremony, and zero runtime cost.

GitHub

The archive

Everything, live from GitHub.

This list reads straight from the public GitHub API in your browser — no server, no token. Snapshot · May 2026

LinqContraband Stop smuggling bad queries into production. A Roslyn Analyzer that catches EF Core performance killers (client-side eval, N+1) at compile time. C# ★ 9 2 days ago DependencyInjection.Lifetime.Analyzers Prevent memory leaks and runtime crashes in .NET Dependency Injection. A zero-overhead Roslyn analyzer that catches captive dependencies, undisposed scopes, and lifetime mismatches at compile-time. C# ★ 9 14 days ago automapper-analyser A Roslyn Analyzer for AutoMapper that detects mapping configuration errors and missing maps at compile-time, preventing runtime exceptions. C# ★ 4 16 days ago CancelCop.Analyzer A surgical Roslyn analyzer focused on CancellationToken propagation and honoring across public APIs, handlers, EF Core, HTTP calls, and Minimal APIs, with comprehensive code fixes. C# ★ 4 4 months ago AOEOverlay Tauri desktop overlay built with TypeScript and React. TypeScript ★ 2 5 months ago CQRSPrototype A robust .NET solution demonstrating Clean Architecture and CQRS (Command Query Responsibility Segregation) principles. This project serves as a reference implementation for building scalable, maintainable, and testable enterprise applications using modern .NET technologies. C# ★ 2 6 months ago ConfigContraband Stop smuggling broken appsettings into production. Roslyn analyzers for .NET Options and configuration correctness. C# ★ 1 5 days ago CPMigrate Migrate .NET solutions to NuGet Central Package Management, analyze dependency health, and update packages safely with rollback. C# ★ 1 last month NotifyGen C# source generator that eliminates INotifyPropertyChanged boilerplate. Add [Notify] to your class, get properties with change notification. Zero runtime overhead. C# ★ 1 4 months ago georgewall-site Personal portfolio — georgewall.uk. Static Astro site, repos fetched live from the GitHub API, deployed on Vercel. Astro today fleet-commander-site Public website, support, privacy, and terms pages for Fleet Commander on the App Store. HTML today AspireMicroservices C# 4 months ago Frontend TypeScript 4 months ago DuplicatePhotoHandler TypeScript 4 months ago

About

I make the boring guarantees that let teams move fast.

I'm George, a 34-year-old full-stack developer working in financial services in London. My day job lives where correctness actually matters — and that's shaped everything I build on the side.

I'm drawn to the unglamorous infrastructure of software quality: the analyzer that flags a captive dependency, the generator that deletes a thousand lines of boilerplate, the CLI that migrates a solution without breaking it. Tools that are invisible when they work and priceless when they stop a 3am incident.

Good software fails loudly, early, and somewhere cheap to fix. I spend my time moving the failure as close to the keyboard as it'll go.

Across .NET, TypeScript and Swift, the through-line is the same — production-safety systems that turn runtime surprises into compile-time certainty.

Working with

  • C#
  • .NET
  • Roslyn
  • EF Core
  • TypeScript
  • React
  • Swift
  • SwiftUI
  • Astro
  • Azure