I'm Michael, and I break things on camera.
Twenty years of .NET and I still say "oh geez, what the heck?!" out loud at my own code at least once a week. That reaction is basically the whole curriculum.
I teach C#, ASP.NET Core, and Windows development. Not the polished conference talk version where everything compiles on the first try, but the meat and potatoes version, where you find out the hard way that the sample in the docs quietly assumed you had one instance running.
Most of what I know I learned by getting it wrong first, usually in front of somebody. So that's how I teach it. Every article and video here starts from the thing that broke, walks through why it broke, and ends with what I'd actually do on Monday.
What you'll find here
Articles when something needs to be read slowly with code in front of you. Videos when it needs to be watched, because some bugs only make sense when you see the debugger step into the wrong branch. Every Sunday I send The .NET Drip, one .NET tip plus a short pile of links that were actually worth reading that week.
The honest part
I'll always tell you when not to use the thing I just showed you. A pattern that saves one team six months will cost another team a year, and pretending otherwise is how we all ended up maintaining a repository wrapper around a repository.
I write mostly for teams of three to thirty on line of business software. If you're doing high frequency trading or writing a game engine, take everything here as a starting point and measure it yourself.
Why dev disasters
The best engineering conversation I've ever had started with somebody admitting they took production down. Not the talk, not the blog post. The admission. It turns out you learn faster in a room where being wrong out loud is normal, so I built a place for that.
Tell me yours. Anonymously if you want. I'll never name you, your company, or the coworker who wrote the regex.