>_ tom@tommyb: ~
1. zsh
Tom BiddulphSenior Software Engineer / C# + Backend
Type to explore, or find me on GitHub and LinkedIn.
neofetch
tom@tommyb
RoleSenior Software Engineer
FocusC#, .NET, backend, fintech
CloudAzure + Service Bus
ObservabilityOpenTelemetry
LocationLeeds, UK
HomelabProxmox + Kubernetes
GitHub35 public repositories
ShellBlazor / .NET 10 / C# 14
github.com/tombiddulph
whoami
tom

Senior Software Engineer

Tom Biddulph

Backend-focused C# engineer building reliable, accessible web and fintech systems.

At NewDay, I build and maintain accessible financial products used by millions of customers. My background spans several leading fintech teams.

Leeds, United Kingdom

Experience

Senior Software Engineer

NewDay / -present

  • Builds and maintains accessible financial products used by millions of customers.

Senior Software Engineer

Codat /

Software Engineer II

Checkout.com / -

Software Engineer

NewDay / -

Associate

AND Digital / -

Education

University of Hull

Bachelor's Degree, Computer Science / First-class honours (1:1)

Technology stack

Languages
C#, TypeScript, SQL
Platform
.NET, ASP.NET Core, Azure Functions
Cloud
Azure, Service Bus, Application Insights
Infrastructure
Proxmox, Kubernetes, self-hosting
Observability
OpenTelemetry, distributed tracing, OTLP
Delivery
Docker, GitHub Actions, CI/CD
Testing
TUnit, integration testing, test hosts

Selected projects

Service Bus Emulator Explorer

A web UI for exploring and managing the Azure Service Bus Emulator.

Stack: React 19, .NET 10, Azure Service Bus, SQL Server, OpenTelemetry

The application combines a React and Vite interface with an ASP.NET Core API and the Azure Service Bus Emulator.

Architecture

  1. React + Vite UI
  2. ASP.NET Core API
  3. Azure Service Bus Emulator + SQL Server

Highlights

  • Queue, topic, subscription and DLQ management
  • Docker delivery and OpenTelemetry observability
  • Monaco message editor and real-time statistics

View source on GitHub

PropertyResolvers

Generates type-safe property resolvers at compile time, avoiding runtime reflection.

Stack: C#, Roslyn, Source Generators

Annotated C# models drive a Roslyn source generator that emits switch-based property resolvers and a type-safe registry.

Architecture

  1. Annotated C# models
  2. Roslyn source generator
  3. Generated switch-based resolvers

Highlights

  • Compile-time generation instead of runtime reflection
  • Nullable property support
  • Type-safe resolver registry

View source on GitHub

Azure Functions .NET Worker Test Host

A focused test host for isolated-worker Azure Functions applications.

Stack: C#, .NET, Azure Functions

The reusable test host runs isolated-worker Azure Functions from a test project without requiring a deployed Functions host.

Architecture

  1. Test project
  2. Isolated worker test host
  3. Azure Function under test

Highlights

  • Designed for isolated-worker Functions
  • Small reusable testing utility
  • Open source under the MIT license

View source on GitHub

OpenTelemetry Tracing Demo

A practical tracing and collector integration demonstration.

Stack: C#, .NET, OpenTelemetry, Azure Service Bus

An HTTP API publishes messages to the Azure Service Bus Emulator, where four consumers demonstrate distributed trace propagation.

Architecture

  1. HTTP API
  2. Azure Service Bus Emulator
  3. Four message consumers + Aspire dashboard

Highlights

  • Distributed traces across asynchronous messaging
  • Activity links versus parent context
  • Docker Compose development environment

View source on GitHub

Career timeline

  1. AND DigitalAssociate
  2. NewDaySoftware Engineer
  3. Checkout.comSoftware Engineer II
  4. CodatSenior Software Engineer
  5. NewDaySenior Software Engineer

Contact

The best places to find my work and get in touch are GitHub and LinkedIn.

GitHub
github.com/tombiddulph
LinkedIn
linkedin.com/in/tabiddulph
Connection lost. The terminal needs to reload. View the plain resume
connection

connection lost
attempting to rejoin the server...

retrying connection
next attempt in s

error: unable to reach server
check your connection and retry

session paused
terminal state has been preserved

error: unable to resume session
start again or continue with the static resume

view the plain resume