STATUS: OPERATIONAL  ·  REGION: DUBAI-UAE  ·  UPTIME: 8+ YRS

Ahmed Lotfy Mahfouz Technical Team Lead — .NET Systems × Production AI

I lead a team of 5 engineers building the systems that fuel stations, POS terminals, and payment networks depend on — and I bring AI into them the enterprise way: self-hosted LLMs on NVIDIA DGX where data can't leave, hosted models where it can.

svc://capabilities · 4 modules loaded

Capability Matrix

MOD-01

Languages & Frameworks

  • C#
  • .NET Core → 10
  • Entity Framework
  • gRPC
  • WCF
  • MVC / Web API
  • LINQ
  • TypeScript
  • Angular
  • JavaScript
  • HTML5 / CSS3
MOD-02

AI & LLM — production

  • Claude API
  • OpenAI API
  • Ollama on NVIDIA DGX
  • RAG pipelines
  • Vector search / DBs
  • Microsoft.Extensions.AI
  • Structured output
  • fal.ai imagegen
MOD-03

Platform & Ops

  • Azure Cloud
  • Azure DevOps
  • Docker
  • CI/CD pipelines
  • Git
  • MSSQL / T-SQL
  • AI-assisted IDEs
MOD-04

Systems Expertise

  • Microservices
  • System integration / ESB
  • Payment & POS systems
  • API design
  • Active Directory
  • Single Sign-On
  • Multi-tenancy
svc://deployments · chronological log

Deployment History

v4 · CURRENT11/2020 → nowDubai, UAE

Technical Team Lead · ENOC

  • Lead a team of 5 engineers building internal & external services for enterprise retail and payment systems — owning delivery from design through production.
  • Stood up self-hosted LLM infrastructure with Ollama on NVIDIA DGX Spark: open models fully on-premises, so sensitive corporate data never leaves the organization.
  • Built an internal RAG assistant over company knowledge and an AI code-assistance tool used by the engineering team.
  • Developed text-classification services and autonomous agents automating SDLC workflows including code review and security review.
  • POS & KIOSK integration services on WCF, REST, and Software AG ESB; admin portals with Active Directory + custom SSO on .NET 10 / Angular.
  • Cut mobile API response times ~30%; refactored legacy services for ~40% better maintainability; CI/CD + docs adopted as team standard.
v3 · PARALLEL11/2020 → 12/2025Dubai · part-time

Senior Software Engineer · Compass International

  • Built a multi-tenant ERP platform full-stack with .NET and the ABP framework; core modules plus the mobile-facing API layer; CI/CD for releases.
v210/2019 → 11/2020Cairo, EG

.NET Full-Stack Engineer · Compass International

  • Shipment tracking & optimization; C#/.NET, JavaScript, AJAX applications.
v107/2017 → 10/2019Cairo, EG

.NET Full-Stack Engineer · Pearogram

  • Scalable web solutions for client projects — HTML, JavaScript, AJAX, JSON.
BOOT2013 → 2019Menoufia Univ.

B.Sc. Pure Mathematics & Computer Science

svc://systems.live · internal systems shown as simulations

Systems, Running

Enterprise systems can't be linked publicly — so the internal ones run here as live simulations of what they do. Public projects link out.

ENOC Contactless & POS Services

Contactless cards, vending & POS machines · Network International payments · SOA financial accounts

SIMULATION
0authorizations
0%approval rate
avg auth latency
  • WCF
  • REST
  • Software AG ESB
  • Network International
  • SOA

Internal RAG Assistant + GenAI for .NET

Retrieval-augmented assistant over company knowledge · Microsoft.Extensions.AI abstraction · hosted & self-hosted models

SIMULATION
MODEL ROUTE data boundary: never leaves the org
  • RAG
  • Vector search
  • MEAI · IChatClient
  • Ollama on DGX Spark
  • Claude API

ViP — Vehicle Identification Pass

RFID-tagged vehicles authorized for fuelling & payment · FastEndpoints APIs · ESB integration · Angular front-end

API TRACELIVE SITE ↗
🚗
  1. VEHICLE DETECTED · lane 03
  2. RFID TAG READ · tag 8F:2C:…:A1
  3. GET /passes/{tag} · account resolved
  4. POST /limits/check · fleet policy OK
  5. POST /pump/authorize · pump #7 unlocked
  6. EVENT → ESB · fuelling.started published
  • FastEndpoints
  • .NET APIs
  • ESB
  • Angular
  • DB redesign

Upload a resume → get an anime character card with derived stats and a generated hero image. Claude API for structured analysis, fal.ai for imagery.

parsing resume…
BACKEND92
INTEGRATION88
AI/LLM84
LEADERSHIP90
  • Claude API
  • Structured JSON output
  • fal.ai
  • PDF render

ENOC Pay

Play Store ↗

Consumer fuelling & payments app — enhanced REST endpoints and app redesign for a smoother experience.

SELECT PUMPAUTH ••••4411FUELLINGE-RECEIPT ✓
API latency
before
after −30%
  • REST
  • Mobile APIs
  • UX

Full-stack multi-tenant ERP on .NET + ABP. Try switching the tenant:

Invoice Module Status
  • ABP framework
  • Multi-tenancy
  • EF Core query filters

Charity UAQ

charity.uaq.ae ↗

ERP for UAE charities — ASP.NET Core APIs, Angular portal, MVC admin dashboard.

Winter Relief0%
awaiting donations…
  • ASP.NET Core
  • Angular
  • MVC

DMG Publisher

dmgpublisher.com ↗

Book publishing platform on .NET Framework + Bootstrap.

"—"
  1. MANUSCRIPT
  2. REVIEW
  3. TYPESET
  4. PUBLISHED
  • .NET Framework
  • Bootstrap

On-Prem AI Platform

CASE STUDY ↗

Four AI workloads in production on self-hosted LLMs — code review, security review, grounded RAG, codegen. Data never leaves the org.

MR-1042 · scanning diff…
  • Ollama · DGX
  • MEAI
  • Agents
  • RAG
notes://field · how I think

Field Notes

Short notes on engineering judgment — the decisions behind the systems above.

NOTE-01

Why we self-host LLMs on DGX (and when we don't)

▸ read

The question isn't "hosted or self-hosted" — it's where is the data boundary? Internal policies, incident reports, and customer records can't cross the org perimeter, so those workloads run on open models via Ollama on NVIDIA DGX hardware. General coding help and public-content generation route to hosted models like Claude, which are simply better at those tasks.

The engineering move that makes this cheap is Microsoft.Extensions.AI: every caller talks to IChatClient, so routing is configuration, not a rewrite. Sensitivity is decided per request, not per project. The lesson from running it: treat the local model server as production infrastructure — auth, rate limits, telemetry, and an eval set that runs before any model or quantization swap.

NOTE-02

Retiring an ESB without a big bang

▸ read

Payment and POS integrations punish big-bang migrations — a bad cutover is measured in failed transactions, not bug tickets. The pattern that works is the strangler fig: put a gateway in front of the ESB, then move one integration at a time to a dedicated service while everything else keeps flowing through the old path.

Two disciplines make it safe: contract tests so the new service provably speaks the same language as the old route, and shadow traffic — mirroring real requests to the new service and diffing responses before it ever takes live load. Cutover becomes a routing change you can reverse in seconds. Slow is smooth; smooth is fast.

NOTE-03

Getting LLMs to return data, not prose

▸ read

The moment an LLM output feeds a system instead of a human, prose is a liability. The rule I enforce: never regex model output. Define a typed contract (a C# record), request schema-bound structured output, deserialize, validate, and on failure retry with the validation error appended — the model fixes its own mistake far more reliably than string surgery does.

This is how AnimeCV turns an arbitrary resume into a stable character card, and how our classification services stay boring and dependable. Treat the model like any untrusted upstream API: strict contract in, strict validation out, and telemetry on every call so drift shows up in dashboards, not incidents.

probe://peer-review

Peer Review

Verified recommendations from people I've worked with — full text on LinkedIn.

certs://registry

Certification Registry

slot provisioned · awaiting registration

Certifications will register on this node as they're earned. Verified credentials only — no badge inflation.

svc://handshake

Open a Channel

Building enterprise .NET, payments, or bringing LLMs on-prem? Let's talk.

⬇ resume.pdf