P.01 — Selected work
Dynamics 365 customer platform
Across several enterprise roles, I have extended Dynamics 365 CE and Microsoft Power Platform into customer and operational systems that go beyond standard configuration.
This is a composite account of that work, rather than a single deployment containing every component below. It describes my delivery responsibilities and the decisions they involved; client names, implementation artifacts, and measured outcomes are not published here.
The delivery problem
Enterprise CRM work rarely stays inside one product boundary. Business processes cross portals, identity, line-of-business applications, reporting, integrations, and production support. The challenge is deciding which responsibilities belong in configuration, automation, client-side components, server-side extensions, or external services.
What the work included
- model-driven and canvas app development;
- Power Apps custom pages and customer portal integration;
- plugins, workflows, web resources, PCF controls, and custom APIs;
- Power Automate flows and business process flows;
- integration with external applications and .NET services;
- SSIS and KingswaySoft-supported data migration;
- Power BI dashboards and migration from legacy reporting;
- role configuration, documentation, deployment, support, and troubleshooting; and
- mentoring engineers and collaborating with business analysts and project managers.
Operational focus
The work combined platform configuration with custom components where transaction control, reusable integration, or specialized interaction required it. Each solution also included deployment, troubleshooting, documentation, and production support so the receiving team could operate it confidently.
Decisions that mattered
The recurring decision was where each responsibility belonged. Business rules that needed to stay close to Dataverse were handled in the platform. User interactions that needed a richer interface used custom pages, portal patterns, web resources, or PCF controls. Integration behavior that needed stronger isolation or reuse moved into .NET services or custom APIs instead of being buried inside screen logic.
That boundary kept the work maintainable. It also made support clearer: administrators could understand configuration-led behavior, developers could inspect extension points, and operational teams could trace the integrations that moved data between systems.
How I assess the boundary
The first question is what the system must guarantee when an operation fails. A richer screen can guide a user, but it does not protect a rule when an integration writes directly to Dataverse. An asynchronous process can coordinate work across systems, but its failure handling and ownership need to be understood separately from the originating save. These distinctions explain why the work spans configuration, client components, server-side extensions, and services rather than treating them as interchangeable options.
My responsibility also includes making the boundary understandable to the next team. For a platform extension, that means identifying the event, relevant data, execution behavior, and deployment configuration. For an integration, it means identifying the contract, authentication, failure behavior, diagnostics, and operational owner. The extension-point article walks through a clearly labelled hypothetical review process to make that reasoning concrete.
Verification and handover considerations
Testing and production support need to address more than a successful screen interaction. The questions I use to assess a solution include:
- Does the required behavior hold through the application and the integration paths that can write the same data?
- What happens when an operation is repeated, required information is absent, or an external dependency is unavailable?
- Can the receiving team identify the responsible component, inspect its diagnostics, and understand how to recover?
- Are configuration, deployment steps, ownership, and support expectations documented together?
These questions describe the verification and handover approach, not a published test log or a claim that every component used the same architecture. The scope above includes deployment, troubleshooting, documentation, and production support because those responsibilities continue beyond the initial implementation.
What this shows
This case study is representative of the work I now describe on the expertise page: Dynamics 365 CE delivery is not just form configuration. Strong implementations connect model-driven apps, automation, security roles, portals, reporting, migration, and integration choices into one system that can be operated after launch.
Explore the broader Dynamics 365 and Power Platform expertise or read about choosing an extension point.
- Role
- Solution delivery & technical leadership
- Stack
- Dynamics 365 CE, Dataverse, Power Apps, Power Automate, PCF, C#/.NET
- Year
- 2019-present