Turning Complex Problems Into Confident Technology
Delivery process
How I build and ship
Every engagement follows the same discipline: written scope before code, tests before deploy, documented handover at the end. Here's the tooling and process behind that — see How I Work for the broader delivery philosophy.
Where every engagement starts
Scoping & Planning
Work starts with a written statement of scope. No verbal agreements, no ambiguous briefs — acceptance criteria are documented before any code is written.
Requirements & Tracking
Work is managed in Azure DevOps Boards across Epics, Stories, and Tasks. Every requirement maps to a work item with a written acceptance criterion.
Azure DevOps Boards
Epics / Stories / Tasks
Acceptance criteria
Markdown specifications
Estimation & Agreement
Estimates are mapped to fixed day rates and delivered as a written quote referencing the scope document. Nothing starts without written agreement.
Written scope document
Fixed day rates
Written quotes
30-day defect warranty
The build phase
Development
Code is written in the language appropriate to the domain — no framework churn, no unnecessary dependencies.
Application Code
C#/.NET is the primary delivery platform for APIs, services, integrations, and legacy modernisation. VBA for Excel and Access operational tooling where needed.
C#
.NET / ASP.NET Core
Entity Framework Core
VBA (Excel / Access)
WPF
Data & Scripting
SQL Server for data-layer work, PowerShell for automation and Microsoft 365 management, Bicep for infrastructure as code.
T-SQL / SQL Server
PowerShell
Bicep
Azure Functions
Web & APIs
Vanilla TypeScript and JavaScript for client-facing tooling and operational sites. REST APIs across Azure Functions and ASP.NET Core.
TypeScript
JavaScript (vanilla)
HTML / CSS
Node.js
REST APIs
Before anything ships
Quality & Testing
Tests are written as part of delivery, not bolted on afterwards. Automated checks run on every commit.
Application Testing
Unit and integration tests run against real data stores — not mock-only suites that pass locally and fail in production.
MSTest
NUnit
xUnit
Integration tests (real DB)
Frontend Quality
Automated quality gates on every commit: lint, HTML validation, Lighthouse CI (performance ≥0.90), and WCAG 2.1 AA accessibility checks.
ESLint
html-validate
Lighthouse CI
WCAG 2.1 AA
Reliable, repeatable deployments
Infrastructure & Deployment
Deployments are automated and environment-gated — dev → testing → production with no manual steps.
CI/CD Pipelines
Multi-stage Azure DevOps Pipelines with branch protection rules and pipeline-gated environment promotion. No direct-to-production deploys.
Azure DevOps Pipelines
GitHub Actions
Branch protection
Multi-stage promotion
Git
Cloud Infrastructure
Azure-native hosting across App Service, Functions, SQL, and Static Web Apps. Infrastructure defined as code using Bicep for reproducible environments.
Azure Static Web Apps
Azure App Service
Azure Functions
Azure SQL
Bicep IaC
Built in, not bolted on
Security & Compliance
Security and GDPR requirements are considered at the design stage. UK data protection obligations are addressed before code is written, not after.
Identity & Access
Entra ID, Conditional Access, and MFA enforcement for client identity workloads. Intune for device management where required.
Azure Entra ID
Conditional Access
MFA enforcement
Microsoft Intune
Data & Compliance
Microsoft Purview and Information Protection for data governance. Microsoft Defender for endpoint and workload protection. GDPR-aligned data handling throughout.
Microsoft Purview
Microsoft Defender
Information Protection
GDPR / UK data protection
Next steps
What's next?
Service Catalogue
See the full catalogue of services, matched to common delivery problems.