Edmonton, AB · Microsoft Fabric · Power Platform · Azure AI

I build the application, the data platform, and the AI layer.

Most organizations divide this work across several roles. Twenty years of full-stack engineering plus production Microsoft Fabric work means I can take an organization from spreadsheets to a custom system, to governed reporting, to AI working inside the application rather than beside it — without handing off between vendors at every seam. I've done it as the only technical person in the building, which means I design for handover, not heroics.

20 yrsfull-stack & data engineering
4 countriesshipped in production, in four markets
1 personthe entire data function, end to end
12 countriestaught live, mostly non-technical rooms
How the whole thing fits together

The pattern I build to: applications feed a medallion platform, which feeds both the reporting and the AI layer. One architecture, one person accountable end to end. A reference architecture — not a diagram of any one organization's systems.

Applications & sources

The layer where data is born — built or inherited, it all has to flow.

  • Custom full-stack systems — Django & React on PostgreSQL, PHP where the estate already runs on it
  • Low-code applications — Power Apps on Dataverse, SharePoint, Power Automate
  • The inherited reality — SaaS exports, Excel workbooks, and APIs that were never meant to be a source system
Bronze → silver

Raw data becomes trustworthy data.

  • Data Factory pipelines and PySpark notebooks, scheduled and unattended
  • Incremental loads, merge-on-key dedup, schema-drift handling
  • Conformed names and types — decided once, enforced everywhere
Gold

Trustworthy data becomes answerable questions.

  • Star schemas with conformed dimensions
  • Governed semantic models — measures defined once, not per report
  • One set of numbers the whole organization argues from, not about
Consumed by

Answerable questions become decisions people act on.

  • Reporting — Power BI on Direct Lake
  • AI on the platform — retrieval over internal documents, document intelligence on intake, PII redaction before anything reaches a model
  • AI in the application — drafted content for staff review, workload signals, agentic intake — every suggestion reviewed by a human before it counts
20 yrs Every era of the stack shipped in production — Oracle, PHP, e-commerce, BI, now Fabric and Azure AI.
App → lakehouse → AI The full span in one pair of hands: the systems, the governed platform beneath them, and the AI layer on top.
1,000+ Practitioners across 12 countries trained to work with their own data — delivery is half the job.
What I build

Three kinds of work, all on the Microsoft stack.

Scoped so the first piece finishes and proves itself before the next one starts.

Fabric data platforms

Bronze-to-gold lakehouse with pipelines, deduplication logic, star schemas and Direct Lake reporting — documented, with the runbooks needed to operate it without me.

FabricData Factory LakehousePySpark Power BIDirect Lake

Line-of-business systems

Case management, intake and financial systems — full-stack in Django and React where real control is needed, Power Apps and Dataverse where speed matters more. Deciding which problem you actually have is most of the work.

DjangoReact PostgreSQLPower Apps DataversePower Automate

AI inside the application

Not a chatbot beside the system — AI doing part of the work within it: drafting records for staff to review, summarizing history, flagging workload signals, agentic intake with human sign-off. Plus the platform side: retrieval over internal documents, document intelligence, PII redaction before anything reaches a model.

Azure AIAzure OpenAI RAGDocument Intelligence PII redactionHuman in the loop
First

Scope small, in writing

Work starts deliberately narrow — one source, one report, one workflow. Scope, deliverables, and what "done" means go on paper before anything is built.

Then

Build and prove it

Open-and-close delivery: the thing ships working, scheduled, and measured against the number we agreed mattered — not against a demo.

Finally

Hand it over

Runbooks, documentation, and training for the people who'll operate it. The work ends when nobody needs me — that's the deliverable.

Writing & learning in public

One decision on the Microsoft stack, why, and what it cost.

Medallion layering, what belongs in Dataverse, PII redaction before anything reaches a model, and what it takes to be the entire data function. Written for the person who is the whole data team.

Read the newsletter →
Teaching & training

The build isn't finished until someone else can run it.

Documentation and training are part of how I define done, not an add-on at the end. I've also taught live outside of delivery work — 1,000+ people across 12 countries, most of them not technical.

See teaching & training →
About & contact

Twenty years shipping software. Now pointed entirely at data and AI.

Oracle developer, then web agencies, then Head of E-Commerce for a UK retail brand, then independent BI consultant. Today I run the entire technical function at a nonprofit organization in Edmonton: the applications, the data platform underneath them, the reporting on top, and the AI layer going in next — plus the training and support that make any of it stick.

The breadth is intentional. Applications create the data. The platform governs it. Reporting explains it. AI helps people act on it. I work across the full path because the gaps between those layers are where projects fail.

Khawar Zaman mid-explanation at a whiteboard in Edmonton
Khawar Zaman — Edmonton, Alberta