Selected Work

Project types and outcomes from real engagements — without naming clients. All results are from delivered work.

Legal / Professional Services 2025

AI Document Intelligence Pipeline

A firm processing 200+ contracts per month entirely by hand. Review cycles of 3–4 weeks. Bottleneck at every growth stage. The ask: cut that down without replacing the lawyers.

Challenge

Legal reviewers spent 40+ hours per week reading contracts to extract clauses, flag risk, and classify document type. The manual process introduced inconsistencies and made scaling impossible without proportional headcount growth.

Solution

Built an Azure OpenAI pipeline using GPT-4o and Azure Document Intelligence. Documents are ingested, classified, and passed through a structured extraction chain. Results surface in an Angular dashboard with reviewer override controls. The .NET 8 API handles orchestration, queuing, and audit logging.

Outcome

  • 95% reduction in manual review time
  • 4 days average review cycle (was 4 weeks)
  • 94% clause extraction accuracy
E-commerce / Retail 2024

Legacy .NET 8 Modernisation

An 8-year-old .NET Framework 4.7 monolith. Deployments took 3 days, zero automated tests, and a feature backlog measured in months. The team was capable but the codebase had outgrown them.

Challenge

Tightly coupled code with no interfaces meant every change had unknown blast radius. Manual FTP-based deployments locked releases to specific windows. Engineers were afraid to refactor. Four senior engineers had quit in 12 months citing tech debt.

Solution

Phased migration over 3 months: domain extraction first, then Clean Architecture layering, finally the .NET 8 upgrade. Added a CI/CD pipeline on Azure DevOps with branch protection and automated test gates. Introduced xUnit, integration tests against a real test DB, and Architecture Tests using NetArchTest.

Outcome

  • 45 min deploy time (was 3 days)
  • 74% test coverage (was 0%)
  • increase in feature velocity
SaaS / B2B 2025

Real-Time Analytics Platform

A B2B SaaS product with no usage visibility. Customer support spent 40% of their day answering questions the product should answer itself. Churn was rising with no data to explain why.

Challenge

All product telemetry was batch-processed overnight. By the time issues surfaced, affected customers had already churned or opened tickets. The support team had no tools to proactively identify struggling accounts.

Solution

Built a real-time event streaming system using .NET 8 background services and Azure Service Bus. Angular 17 Signals dashboard shows live product usage. An Azure AI layer detects anomalies and flags at-risk accounts automatically. Support gets alerts before customers notice issues.

Outcome

  • 38% reduction in support tickets
  • 15% churn reduction (first quarter)
  • <2 s event-to-dashboard latency

Have a similar problem?

Tell me what you're building and I'll tell you if I can help.

Get in touch