Publishing Bi-Weekly · ASP.NET Core · Design Patterns · Architecture · 20 yrs C#/.NET · Jacksonville, FL · appliedcsharp.com
Michael O'Hara

Michael O'Hara

Senior Engineering Leader · 20 yrs C#/.NET · Jacksonville, FL
C# / .NET ASP.NET · Web API AI-Accelerated Development

I studied English and History at UT Austin — not the typical origin story for a .NET engineer. But twenty years of shipping production C# taught me that the ability to explain a design decision clearly is worth as much as the ability to implement it. This blog exists because of that conviction.

I've built claims auditing engines for major healthcare companies, optimized national-scale real estate data pipelines, and led teams through the kind of cloud modernization projects where "lift and shift" is a polite fiction. The patterns I write about here are the ones that survived all of it.

Along the way I kept running into the same problem — talented engineers doing things dangerously wrong and not knowing it. Junior developers fresh out of school, well-educated but unprepared for the actual daily work of shipping software. Mid-level developers far enough along to be productive but carrying gaps in the why behind the patterns they used every day.

Nobody teaches you that stuff. Not school, not docs, not Stack Overflow. You either get lucky with a good mentor or you learn it the hard way in production. I started writing it down so there'd be a third option.

// 02 Expertise
Core Language
C# & .NET

Generics, async/await, LINQ, records, pattern matching, spans — the language features that change how you think.

Web Layer
ASP.NET Core

Web API, minimal APIs, middleware pipelines, filters, output caching, and the full request lifecycle.

Data
EF Core & SQL

Query performance, migrations without downtime, the N+1 trap, and knowing when not to use an ORM.

Design
Patterns & Arch

SOLID, clean architecture, CQRS, decorator, repository — and knowing when simpler wins.

Quality
Testing

xUnit, NSubstitute, integration tests with WebApplicationFactory, test doubles, and what coverage actually measures.

Operations
Production

Structured logging, health checks, exception middleware, feature flags, graceful degradation under load.

Infrastructure
Cloud & Infra

Azure, Docker, background workers, message queues, microservice boundaries, and distributed tracing.

Leadership
Team & Career

Code reviews, mentoring, promotion prep, technical interviews, and the mid → senior → staff path.