Project delivery
A defined piece of technical work, like an integration, a set of components or a migration. Scoped, built and handed over with a clear start and finish.
From CRM logic to low-code acceleration, with enterprise-grade discipline. These are the disciplines that decide whether a Dynamics 365 and Power Platform solution holds up once it's carrying real work.
Plugins, custom workflow activities and custom APIs in C#, plus client-side logic in TypeScript, for business rules and behaviour the low-code designer simply can't express. Built against clear extension points, unit-tested, and registered the right way.
Connecting Dynamics 365 to Azure, line-of-business systems and external APIs. Power Automate where it fits, Azure Functions and Service Bus where it doesn't. Chosen for reliability under load, not for the quickest demo.
The foundation everything else stands on: a data model that mirrors your business, a security design that's enforceable, and structure that keeps performance and governance under control as you grow.
Source-controlled solutions and automated pipelines so changes move through dev, test and production predictably, with releases you can repeat and roll back, instead of manual exports and crossed fingers.
A second pair of expert eyes on an implementation that's gone sideways: unmanaged customisations, performance problems, brittle flows. I find the root cause, stabilise it, and leave you with a plan you can act on.
Bring me in by the project, by the sprint, or by the day, whatever the work actually needs.
A defined piece of technical work, like an integration, a set of components or a migration. Scoped, built and handed over with a clear start and finish.
Joining an existing project as the technical specialist, pairing with functional consultants and your developers for a sprint or a release cycle.
On-call expertise: architecture reviews, code reviews and a sounding board for the calls that are expensive to get wrong.
Describe the situation in a few sentences. I'll point you to the shortest sensible path, even if that path isn't me.
Start a conversation →