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.
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.
The layer where data is born — built or inherited, it all has to flow.
Raw data becomes trustworthy data.
Trustworthy data becomes answerable questions.
Answerable questions become decisions people act on.
Scoped so the first piece finishes and proves itself before the next one starts.
Bronze-to-gold lakehouse with pipelines, deduplication logic, star schemas and Direct Lake reporting — documented, with the runbooks needed to operate it without me.
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.
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.
Work starts deliberately narrow — one source, one report, one workflow. Scope, deliverables, and what "done" means go on paper before anything is built.
Open-and-close delivery: the thing ships working, scheduled, and measured against the number we agreed mattered — not against a demo.
Runbooks, documentation, and training for the people who'll operate it. The work ends when nobody needs me — that's the deliverable.
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.
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.
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.