Services

Twenty years of .NET work across integrations, migrations and custom builds. The problems below are the ones that show up repeatedly. If yours isn't listed, describe it anyway.

Every engagement is scoped and built by the same engineer. Where a project needs additional capacity it comes from a network of engineers who have been worked with directly, and you are told who is on the project and what they own before they start.

Core practice

The four engagements that make up most of the work. Each has its own page.

Project Rescue

Projects that stalled, shipped wrong or lost the developer who understood them. Starts with a fixed-fee assessment of what actually exists, including systems built fast with AI assistance that now nobody can safely change. Independent enough to be handed to your own team.

Project rescue

Legacy .NET Migration

The application built in 2009 that still runs something critical. .NET Framework to .NET 8+, WebForms modernization, multi-version Umbraco upgrades and on-premises to Azure moves, with data, history and URLs intact through cutover.

Legacy migration

System Integrations

Connecting systems that were never designed to know about each other. Document management, legal billing and healthcare registries, including the entity matching, reconciliation and monitoring that lowest-bid scopes leave out.

System integrations

Support & Maintenance

A monthly retainer on an application that no longer has anyone assigned to it. Security patching, dependency updates, small feature work and a named engineer who already knows the system. Published rates, month to month, no term commitment.

Support and maintenance

Development

Building systems from scratch and running the infrastructure they sit on.

Custom Application Development

Greenfield .NET applications built to spec and shipped. Web applications, internal tools, workflow systems and data platforms. Designed for the team that inherits it to maintain without needing the original developer in the room.

Stack: ASP.NET Core, C#, SQL Server, React, Azure

Azure Cloud Architecture

Architecture design and migration from on-premises or underspecified cloud deployments. App Service, Azure SQL, Entra ID and the security and identity configuration IT and compliance require before anything moves. Includes the operational setup that makes a deployment maintainable after handoff.

Stack: Azure App Service, Azure SQL, Entra ID, Key Vault, API Management

Data Visualization & Reporting Platforms

Interactive reporting over validated data, built for audiences who are not analysts. Confidence intervals, small-cohort suppression and dual patient-and-clinician views: the display decisions that determine whether a chart is accurate or merely plausible. Behind the SRTR, USRDS and organ procurement reporting platforms.

Stack: ASP.NET Core, React, HighCharts, SQL Server, R datasets, Mapbox

Enterprise CMS & Umbraco

Umbraco implementations for organizations whose website is not a brochure: structured content types, staff and directory integrations, editorial workflows non-technical staff can operate, and taxonomies that match how the organization actually works.

Stack: Umbraco, ASP.NET Core, C#, SQL Server, Azure

Leadership & AI

Senior architect embedded in the work: technical direction, and an honest read on where AI belongs in your systems.

Technical Leadership

Senior architect embedded in a team or leading a build from the top. Architecture decisions, technical planning and code review ownership for projects that need someone thinking about the whole system, not just the next ticket. For teams that have developers but lack senior engineering direction, and for greenfield builds that need architectural ownership from day one.

Engagement types: fractional tech lead, embedded architect, project oversight, team augmentation

AI Integrations

Wiring AI capabilities into existing .NET systems. Retrieval over internal document corpora, document processing workflows and LLM integration into line-of-business applications, built to the same reliability and observability standards as any other integration, not a prototype that works in a demo and breaks on real data.

The work often starts with the opposite conclusion. In regulated environments (clinical outcome data, privileged documents), a substantial part of the value is establishing which capabilities are genuinely production-ready and which are still a liability. That answer is worth more than an implementation of the wrong thing.

Stack: Azure OpenAI, Anthropic and OpenAI APIs, Semantic Kernel, .NET, SQL Server, Azure Functions

Not sure which fits?

Describe the system and what's broken or missing. We can work through what a realistic fix looks like.

Start the conversation