Skip to main content
PageTech Solutions Limited logo Turning Complex Problems Into Confident Technology
  • Consultancy (current section)
    • Consultancy overview
    • Services
    • Fixed-price reviews
    • Testimonials
    • Pricing
    • Working with your IT team
    • FAQ
    • Contact
  • Freelance
    • Freelance overview
    • What I fix
    • Testimonials
    • Pricing
    • Hiring through a platform
    • Availability
    • Tech stack
    • FAQ
    • Contact
  • Recruiters
    • Recruiters overview
    • Fit and experience
    • Testimonials
    • Rates
    • Availability
    • Tech stack
    • FAQ
    • Contact
  • About
  • Workshop
  • Search
  • Talk to Jamie
  1. Home
  2. Workshop
  3. C# Azure Functions API Layer

Case study

C# Azure Functions API Layer

The site backend rewritten from Node.js to .NET 10 — a shared services library, its behaviour pinned by tests during the port, shipped through the same pipeline.

C# / .NET 10Azure FunctionsxUnitManaged Identity

At a glance

  1. ChallengeThe site's original Node.js API had grown to carry real complexity — database connection management, OAuth against Google Ads, Graph email, circuit breakers, rate limiting — and needed the type safety and structured testing a compiled language gives.
  2. ApproachA full rewrite to C# on the .NET 10 isolated worker.
  3. OutcomeType safety across the whole API layer and 2,589 automated tests covering validators, services and handlers (counted on 16 October 2026)
automated tests
2,589 automated tests

Challenge

The site's original Node.js API had grown to carry real complexity — database connection management, OAuth against Google Ads, Graph email, circuit breakers, rate limiting — and needed the type safety and structured testing a compiled language gives. It also made sense for the business's own backend to be a working example of the C#/.NET practice it sells.

Approach

A full rewrite to C# on the .NET 10 isolated worker. The shared behaviour was extracted first into a library — a database connection factory that supports credential-free managed identity, typed analytics services, the attribution recorder, Graph email with HTML templates, the Google Ads conversion service with token refresh and an exponential-backoff circuit breaker, GA4 reporting, bot-check verification, rate limiting, an email-domain classifier and asynchronous mail-server enrichment for contact submissions. Existing behaviour was pinned with unit tests during the port, and the new API was delivered through the existing artifact-promotion pipeline without disrupting live traffic. The library has since grown to cover the CV request flow, YouTube authentication and contact identity resolution.

Outcome

  • Type safety across the whole API layer and 2,589 automated tests covering validators, services and handlers (counted on 16 October 2026)
  • Contact submissions enriched with domain type and mail-server checks before they reach the inbox
  • Credential-free database access through managed identity, so there is no database password to store or rotate
  • A circuit breaker on the Google Ads API stops quota pressure cascading
  • Behaviour the endpoints share lives once, in the library, rather than being copied into each

Have a similar problem in your own systems? Book a free 20-minute call or describe it.

Where judgement mattered

  • Extract the shared library before porting anything, so the port had something to test against
  • Tests first, then migration, then cut-over — with the old implementation still serving until the new one proved itself
  • Same pipeline, same environments: the rewrite changed the runtime, not the delivery process

Technology stack

C# / .NET 10 isolated worker · Azure Functions · Azure SQL with managed identity · Microsoft Graph SDK · Google Ads and GA4 APIs · xUnit and Moq · Azure DevOps CI/CD

Book a free 20-minute call More case studies

Calendar not loading, or no time suits? Call, WhatsApp or message me.

© 2026 PageTech Solutions Limited. All rights reserved.

Company no. 17014904

VAT no. 514295790

Based in Andover, Hampshire, working remotely with businesses across the UK.

Registered office (post only, no visitors): Belmont Suite, Paragon Business Park, Chorley New Road, Bolton, Lancashire, BL6 6HG

ICO registration no. ZC179729

I use Microsoft Clarity to improve this site's usability, only if you allow it. See my privacy policy for details.

Visa Mastercard American Express PayPal

Contact Hours

Monday 09:00–12:00, 13:00–17:00
Tuesday 09:00–12:00, 13:00–17:00
Wednesday 09:00–12:00, 13:00–17:00
Thursday 09:00–12:00, 13:00–17:00
Friday 09:00–12:00, 13:00–17:00
Saturday Closed
Sunday Closed
UK time (GMT/BST)

Phone: 01264 354354

ContactAboutTestimonialsWorkshopFAQPricingProductsNot a business?PrivacyTermsAccessibilitySearchSite mapBook a free 20-minute callLinkedInX (Twitter)Bluesky