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

Production C#.
No shortcuts.

Michael O'Hara
Michael O'Hara
Senior Engineering Leader · 20 yrs C#/.NET · Jacksonville, FL

Over the years, I’ve worked with a lot of interns and entry‑level graduates from local universities. Smart people, genuinely motivated — but almost universally unprepared for the practical, everyday work of professional software development. They could recite design patterns. They knew their data structures. But ask them to wire up dependency injection, write a testable controller, or handle an exception properly in a production API — and the gap showed.

I’ve also worked alongside experienced developers who’d been writing code for years but had quietly plateaued. Not because they weren’t capable — they were — but because the way they’d always done things wasn’t actually the best way, and nobody had ever shown them otherwise. Habits that felt comfortable had become invisible constraints, and those gaps — the ones you don’t notice because they’ve always been there — have a way of surfacing at the worst possible time. In performance. In security. In systems that can’t scale past the next milestone. In audits — when an outside firm combs through everything and your code gets flagged. The gap looks different at that stage, but it’s the same gap.

It wasn’t a knowledge gap. It was an application gap — the distance between understanding a concept and knowing how to reach for it on a Tuesday afternoon when a PR needs to go out. Universities teach theory correctly. Bootcamps teach syntax. Neither one teaches you how to make the hundreds of small decisions that separate code that ships cleanly from code that becomes someone else’s problem at 2 AM.

Applied C# is built on twenty years of production C#/.NET — healthcare systems where correctness isn’t optional, real‑estate platforms serving tens of millions of users, cloud modernization efforts where the wrong call costs real money. The patterns here aren’t derived from documentation. They’re the ones that survived deadlines, legacy codebases, and honest postmortems.

If you’re a developer who wants to write better code — not just code that works, but code that holds up, that your teammates trust, that you’re not embarrassed by six months later — this is written for you. Experience level is less important than the desire to close the gap between the engineer you are and the engineer you want to be.

No padding. No affiliate links. No toy examples. Just the Tuesday afternoon stuff.