Skip to content
Ahsan Mehmood
All work

MPN · Full-Stack Engineer · Dec 2024 – Nov 2025

Bonus Automation Platform

A .NET 8 platform that automates bonus eligibility and payouts for 50K+ customer requests a month, with configurable rules and resilient third-party integrations.

8s → <800msBonus evaluation time

Problem

Bonus eligibility and payouts depended on checks across identity, KYC, deposits and withdrawals, for more than 50,000 customer requests a month.

Evaluating a bonus took around 8 seconds.

My role

As a Full-Stack Engineer, built the .NET 8 platform: the business rules, third-party integrations, customer and admin applications, the performance work, authentication, tests and CI/CD.

Architecture

Bonus Automation Platform architectureVue.js 3 customer and admin apps call a .NET 8 API secured with JWT and OAuth 2.0, with SignalR for real-time updates. A rules engine built on NRules and Expression Trees evaluates eligibility. Integration workers using Puppeteer Sharp, HttpClient and Polly collect third-party data. Data lives in SQL Server with Redis caching..NET 8 platformHTTPSSignalRCustomer appVue.js 3 · PiniaAdmin appRBAC · audit logsASP.NET Core APIJWT / OAuth 2.0 · SignalRRules engineNRules · Expression TreesIntegration workersPuppeteer Sharp · HttpClient · PollySQL Servertuned queriesRediscacheThird-party sources
Vue.js 3 customer and admin apps on a .NET 8 API. A rules engine evaluates eligibility, integration workers sync third-party data into SQL Server, and Redis caches hot data.

Key technical decisions

  • Rules as configuration

    Eligibility checks for identity, KYC, deposits and withdrawals are configurable business rules built with NRules and Expression Trees, instead of hard-coded branches.

  • Resilient integrations

    Third-party data is collected with Puppeteer Sharp and HttpClient, wrapped in Polly policies so transient failures are retried, and synchronized into SQL Server.

  • Query tuning plus caching

    SQL Server queries were optimized and Redis caching added, which cut bonus evaluation from about 8 seconds to under 800 ms.

  • Operations visible in real time

    Vue.js 3 + Pinia customer and admin apps with RBAC, audit logs, reporting, and SignalR for live updates.

  • Tested and shipped continuously

    JWT/OAuth 2.0 for auth, TDD with xUnit and Moq, and CI/CD with GitHub Actions and Docker.

Results

  • Bonus evaluation time cut from 8s to under 800ms.
  • Eligibility and payout workflows automated for 50K+ customer requests a month.

Stack

  • .NET 8
  • C#
  • NRules
  • Expression Trees
  • Puppeteer Sharp
  • Polly
  • SQL Server
  • Redis
  • Vue.js 3
  • Pinia
  • SignalR
  • xUnit
  • Docker
  • GitHub Actions