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

Full-stack engineer · 10+ years in fintech

Catching bugs before they ship.

I’m George — a full-stack engineer who builds the whole thing: React/TypeScript frontends, .NET back ends and iOS apps — plus the Roslyn analysers that move a failure from a late-night incident to a red squiggle in your editor.

Public repos
21
GitHub stars
34
Years in fintech
10+
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 built to stop other things breaking.

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.

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.

NuGet GitHub

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.

NuGet GitHub

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.

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, before they become a runtime shrug.

Live GitHub

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.

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 with less ceremony and no runtime tax.

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.

iOS games

iOS games that made it past the README.

Shipped App Store games first, private iOS prototypes after that. This is the product end of the work: screenshots, store copy, Game Center, monetisation, release notes, support pages, and all the dull bits between “it runs” and “someone can actually download it”.

Shipped App Store iOS games

Private iOS prototypes

Tiny Transit Jam iPhone screenshot showing the level map and daily challenge card
Tiny Transit Jam iPhone screenshot showing the onboarding puzzle board and booster tray

Private iOS build · Puzzle

Tiny Transit Jam

Private build

A private prototype for the commute-puzzle part of my brain: tap the buses, load the matching passengers, and stop the station seizing up before it all goes sideways.

  • SwiftUI
  • SpriteKit
  • SwiftData
  • Fastlane

The archive

The rest, straight from GitHub.

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

DependencyInjection.Lifetime.Analyzers Zero-overhead Roslyn analyser for captive dependencies, leaked scopes and DI lifetime mismatches. C# ★ 9 today LinqContraband Roslyn analyser for EF Core queries: catches N+1 patterns and client-side evaluation before they ship. C# ★ 9 today CancelCop.Analyzer Roslyn analyser for CancellationToken propagation across handlers, EF Core, HTTP and Minimal APIs. C# ★ 4 yesterday automapper-analyser Roslyn analyser for AutoMapper maps, catching missing and misconfigured mappings at build time. C# ★ 4 yesterday AOEOverlay Tauri desktop overlay built with TypeScript and React. TypeScript ★ 2 6 days ago NotifyGen C# source generator for INotifyPropertyChanged boilerplate. Add [Notify], get the property wiring. C# ★ 2 4 months ago CQRSPrototype Clean-architecture CQRS reference using MediatR, DDD and the transactional outbox pattern. C# ★ 2 7 months ago ConfigContraband Roslyn analysers for .NET Options and appsettings, so broken configuration does not wait for deploy day. C# ★ 1 yesterday CPMigrate CLI for moving .NET solutions to NuGet Central Package Management, with dependency checks and rollback. C# ★ 1 2 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 10 days ago AspireMicroservices C# 5 months ago Frontend TypeScript 5 months ago DuplicatePhotoHandler TypeScript 5 months ago

About

I make the dull guarantees that let teams move quickly.

I’m George, a full-stack engineer with ten years in London fintech — calculation engines that price pension liabilities, React/TypeScript frontends built from scratch, and the engineering standards that keep big teams shipping. Correctness really matters in that world, and it’s shaped everything I build.

I work the whole stack by preference, not necessity: the Kafka consumer, the C# engine it feeds, the React grid that makes the numbers legible. And I’m drawn to the unglamorous infrastructure of quality — the analyser that flags a captive dependency, the generator that deletes a thousand lines of boilerplate, the CLI that moves a solution without making a mess.

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: move the surprise earlier, make it obvious, and keep production out of it.

Working with

  • C#
  • .NET
  • Roslyn
  • Kafka
  • EF Core
  • TypeScript
  • React
  • RTK Query
  • Swift
  • SwiftUI
  • Rust
  • Azure
  • Docker