Sign in

Michael Jolley

@baldbeardedbuilder.com
703 followers 38 following 309 posts

Bringing smiles to the syntax — because laughter is the best error handler. Curating @dotnetdrip.com ✝️ Husband. Dad x 3

PostsRepliesMedia
Michael Jolley @baldbeardedbuilder.com · 29/09/2026
Tired of partial saves and flaky commits in EF Core? Learn how to use Unit of Work the practical way with small C# snippets, explicit transactions, and retries. Simple patterns, clean lifetimes, fewer surprises.
bbb.dev
Unit of Work with Entity Framework Core Done Right
000
Michael Jolley @baldbeardedbuilder.com · 28/09/2026
ZIP without zapping threads. This drop shows .NET 10's new async ZipArchive APIs that do real I/O without Task.Run, plus quick hits on perf triage, DI sanity in ASP.NET Core, and the WinUI move to GitHub. #dotnet #csharp #aspnetcore
bbb.dev
.NET drip - Saturday, September 26, 2026
000
Michael Jolley @baldbeardedbuilder.com · 20/09/2026
Tired of GUID soup in .sln files? Meet .slnx in .NET 10. Migrate in minutes, get cleaner diffs, and keep CI humming. A practical guide with tips, tiny code checks, and a team rollout checklist.
bbb.dev
From sln to slnx in Minutes: Cleaner Diffs, Faster Merges
042
Michael Jolley @baldbeardedbuilder.com · 19/09/2026
Five DI mistakes I still see in .NET apps and how to fix them. Service locator, captive dependencies, singleton overload, constructor bloat, and new inside classes with simple C# examples and safer patterns.
bbb.dev
Five DI Anti-Patterns Haunting .NET Apps and how to fix Them
030
Michael Jolley @baldbeardedbuilder.com · 14/09/2026
This drop turns vague guard clause errors into pinpointed messages using [CallerArgumentExpression]. Also on the radar: leaner EF Core 11 split queries and fresh bits in ASP.NET Core Preview 7. #csharp #dotnet #efcore
bbb.dev
.NET drip - Saturday, September 12, 2026
000
Michael Jolley @baldbeardedbuilder.com · 08/09/2026
Inspired by @chefbrent.com's AI video editing journey, I gave Astra a chance to edit a short for me. Gave 3min of footage and it did the rest. 9 revisions later was a version 100x what I could have done myself. Had it finish by building a skill with our learnings for future videos. How did it do?
youtube.com
The C# const trap 🪤 #csharp #dotnet
YouTube video by Bald. Bearded. Builder.
020
Michael Jolley @baldbeardedbuilder.com · 07/09/2026
BackgroundService can't tell ready from starting. In this drop we use .NET 8 IHostedLifecycleService to warm caches at the right moment and drain work before shutdown, plus advanced C# pattern matching. #dotnet #csharp #aspnetcore
bbb.dev
.NET drip - Saturday, September 5, 2026
000
Michael Jolley @baldbeardedbuilder.com · 01/09/2026
Lists that resize keep the GC busy. Pre-size your List in C# to cut allocations and speed up loops. Short demos and patterns you can use today.
bbb.dev
Measure Twice Allocate Once: Faster Lists in .NET
000
Michael Jolley @baldbeardedbuilder.com · 31/08/2026
This drop shows how [UnsafeAccessor] lets tests touch private state at JIT speed, without reflection or API leaks. Also untangling async DB deadlocks, modern Uri handling, and a clean ML.NET project shape. #csharp #dotnet
bbb.dev
.NET drip - Saturday, August 29, 2026
000
Michael Jolley @baldbeardedbuilder.com · 24/08/2026
C# 12 collection expressions bring one syntax to arrays, lists, spans, and immutables, with .. spread to merge without LINQ. This drop also dives into central package management and a cache stampede fix. #csharp #dotnet #aspnetcore
bbb.dev
.NET drip - Saturday, August 22, 2026
000
Michael Jolley @baldbeardedbuilder.com · 17/08/2026
This drop shows how Task.WhenEach in .NET 9 turns messy WhenAny loops into a clean await foreach so fan-out work streams results as they finish. Plus real advice on Dapper tradeoffs and vertical slices in ASP.NET Core. #csharp #dotnet #aspnetcore
bbb.dev
.NET drip - Saturday, August 15, 2026
010
Michael Jolley @baldbeardedbuilder.com · 10/08/2026
Old lock pattern, meet your grown-up replacement. This drop explores System.Threading.Lock in .NET 9 for safer, faster sync, plus idempotent APIs and cleaner tracing with ActivitySource. #csharp #dotnet #opentelemetry
bbb.dev
.NET drip - Saturday, August 8, 2026
000
Michael Jolley @baldbeardedbuilder.com · 06/08/2026
Nothing wakes you up like a pager telling you a config value was null the whole time. Let's learn how to use IValidateOptions in ASPNET Core to catch bad settings at startup instead of at 2 AM. baldbeardedbuilder.com/blog/tame-co...
baldbeardedbuilder.com
Tame Configuration in ASP.NET Core with IValidateOptions
Silent misconfiguration is sneaky and expensive. Learn how to validate strongly typed settings in .NET using IValidateOptions, add cross property rules, inject services, support named options, and fai...
010
Michael Jolley @baldbeardedbuilder.com · 03/08/2026
Static files that finally cache right: MapStaticAssets in .NET 9 replaces UseStaticFiles with content-hashed ETags, precompressed assets, and immutable headers in this drop. Plus Blazor 10 validation and rate limiting. #dotnet #aspnetcore #blazor
bbb.dev
.NET drip - Saturday, August 1, 2026
000
Michael Jolley @baldbeardedbuilder.com · 27/07/2026
That string.Format in your hot path keeps re-parsing the same pattern. In this drop, CompositeFormat parses once so your logs and reports fly, plus quick hits on EF Core concurrency and the new .slnx format. #csharp #dotnet #efcore
bbb.dev
.NET drip - Saturday, July 25, 2026
010
Michael Jolley @baldbeardedbuilder.com · 15/07/2026
CLAUDE: "You don't like black and blue? How about blue and black?"
020
Michael Jolley @baldbeardedbuilder.com · 07/07/2026
Sealed is more than a style choice. It clarifies design, unlocks JIT optimizations, and keeps hot paths fast. Learn where it shines, when to avoid it, and how to stay testable with interfaces. Code snippets included.
bbb.dev
Sealed by Default in .NET: when it Shines and when it Bites
000
Michael Jolley @baldbeardedbuilder.com · 29/06/2026
Those params arrays are quietly feeding the GC. This drop shows how C# 13 params ReadOnlySpan makes hot-path helpers zero alloc, plus practical takes on IAsyncEnumerable streaming, long jobs, and faster APIs. #csharp #dotnet
bbb.dev
.NET drip - Saturday, June 27, 2026
010
Michael Jolley @baldbeardedbuilder.com · 22/06/2026
This drop shows how IExceptionHandler tidies ASP.NET Core errors with chainable handlers and ProblemDetails. Plus quick hits on Aspire init, Zstandard in .NET 11, and multi-instance deployment. #aspnetcore #dotnet #csharp
bbb.dev
.NET drip - Saturday, June 20, 2026
010
Michael Jolley @baldbeardedbuilder.com · 18/06/2026
Time bugs are sneaky and expensive. I wrote up a practical UTC-first approach for ASP.NET Core using DateTimeOffset and TimeZoneInfo so you can stop shipping "why is my order time wrong" bugs for good.
bbb.dev
Stop Breaking Clocks in ASP.NET Core with UTC and TimeZoneInfo
000
Michael Jolley @baldbeardedbuilder.com · 15/06/2026
Minimal APIs feeling messy? This drop shows how MapGroup and endpoint filters bring order without controllers, plus SIMD-powered CSV parsing and EF Core migration cleanup. #csharp #dotnet #aspnetcore
bbb.dev
.NET drip - Saturday, June 13, 2026
010
Michael Jolley @baldbeardedbuilder.com · 08/06/2026
In this drop, SearchValues<T> turns string scanning into a hot path rocket with SIMD doing the heavy lifting for 3-10x wins. Plus real-world takes on EF Core vs SQL at scale, MAUI on CoreCLR, and a tidier Process API. #csharp #dotnet
bbb.dev
.NET drip - Saturday, June 6, 2026
010
Michael Jolley @baldbeardedbuilder.com · 03/06/2026
This drop unpacks C# patterns and .NET tooling that tame complexity in real apps. Learn what matters, why it works, and the pitfalls to skip. #csharp #dotnet #aspnetcore
bbb.dev
.NET drip - Saturday, May 30, 2026
020
Michael Jolley @baldbeardedbuilder.com · 25/05/2026
This drop shows how [GeneratedRegex] makes regex compile-time fast, AOT friendly, and safer to ship. Plus a critical ASP.NET cookie patch, lean Marten endpoints, and Ubuntu's .NET 10 LTS news. #csharp #dotnet #aspnetcore
bbb.dev
.NET drip - Saturday, May 23, 2026
050
Michael Jolley @baldbeardedbuilder.com · 23/05/2026
Fun with that disco ball profile pic let me to hours of iterating designs/prompts to generate profile pics for loads of US & global holidays. So, now my profile pic changes based on holidays/seasons. In memory of those who died so we could live free. Happy Memorial Day.
000
Michael Jolley @baldbeardedbuilder.com · 19/05/2026
Finally! A trend I was literally made for!
010
Michael Jolley @baldbeardedbuilder.com · 18/05/2026
Blazor prerender causing double fetches and a loading flicker? In this drop: carry state across the handoff with .NET 10's [PersistentState], plus quick wins with ULIDs, faster regex counts, and leaner foreach loops. #blazor #dotnet #csharp
bbb.dev
.NET drip - Saturday, May 16, 2026
000
Michael Jolley @baldbeardedbuilder.com · 17/05/2026
Tired of scavenger hunts through Services and Interfaces folders every time you add an endpoint? I wrote up how I organize ASP.NET Core APIs with vertical slices using Minimal APIs, MediatR, and FluentValidation. baldbeardedbuilder.com/blog/from-la...
baldbeardedbuilder.com
From Layers to Slices: How I Ship Faster ASP.NET Core APIs
Your API should feel like a collection of small, focused stories, not a scavenger hunt through Services and Interfaces. This tutorial shows how to build a feature first Vertical Slice Architecture in ...
000
Michael Jolley @baldbeardedbuilder.com · 11/05/2026
That while + Task.Delay loop is quietly drifting. This drop swaps in PeriodicTimer to keep background jobs on time and spotlights IdentityServer rate limits, cleaner Minimal APIs, and YARP as a lean gateway. #dotnet #csharp #aspnetcore
bbb.dev
.NET drip - Saturday, May 9, 2026
000
Michael Jolley @baldbeardedbuilder.com · 04/05/2026
This drop solves the multi-impl problem with .NET 8 keyed services, from DI attributes to runtime resolution, no factories. Plus, EF Core named filters, Dockerfile-free images, and DPoP-hardened APIs. #dotnet #csharp #aspnetcore
bbb.dev
.NET drip - Saturday, May 2, 2026
000
Michael Jolley @baldbeardedbuilder.com · 29/04/2026
Parallel.ForEach feels like free speed until your app gets slower. I broke down when parallel loops actually help in C#, the shared state trap, I/O pitfalls, and how to measure before you ship.
bbb.dev
Stop Parallelizing Everything: A Practical Guide to Parallel.ForEach
000
Michael Jolley @baldbeardedbuilder.com · 27/04/2026
HybridCache in .NET 9 makes L1 + L2 caching a single call with stampede protection and tag invalidation. This drop also digs into Minimal APIs TryParse traps and containerizing .NET without a Dockerfile. #dotnet #aspnetcore
bbb.dev
.NET drip - Saturday, April 25, 2026
000
Michael Jolley @baldbeardedbuilder.com · 20/04/2026
In this drop: real-time UI the simple way with SSE in Minimal APIs, when to pick it over SignalR, and how to fan out with Channels. Bonus bits: faster CI via test sharding and a tiny NTP client. #aspnetcore #dotnet #csharp
bbb.dev
.NET drip - Saturday, April 18, 2026
000
Michael Jolley @baldbeardedbuilder.com · 16/04/2026
Ever had a production bug with zero audit trail to explain what happened? I wrote up how to build clean EF Core audit logging with interceptors that track who changed what and when, without cluttering your DbContext.
baldbeardedbuilder.com
EF Core Audit Logging with Interceptors that do not Clutter Your DbContext
Learn how to build a clean, production ready audit trail in EF Core that records who changed what and when without stuffing logic into your DbContext. We walk through a practical SaveChanges intercept...
000
Michael Jolley @baldbeardedbuilder.com · 06/04/2026
Compiled bindings in .NET MAUI turn silent binding bugs into build-time errors and make lists scroll like butter. This drop also peeks at Zstandard in .NET 11 and a sneaky Dapper nvarchar perf trap. #dotnet #csharp #maui
bbb.dev
.NET drip - Saturday, April 4, 2026
000
Michael Jolley @baldbeardedbuilder.com · 05/04/2026
.NET 10 made API validation faster through precomputed metadata and fewer allocations. I broke down what changed under the hood, why your p95 latency improves, and how to benchmark it yourself. No code changes needed.
bbb.dev
How .NET 10 speeds up API validation without code changes
010
Michael Jolley @baldbeardedbuilder.com · 04/04/2026
... somethings wrong with me. Why do I get the urge to compliment Copilot CLI after it does good work? It's like I'm working with a junior developer and I'm trying to build it's confidence. "Good work today. That was a clever solution to ..."
010
Michael Jolley @baldbeardedbuilder.com · 30/03/2026
This drop shows how C# 14 extension blocks turn helpers into real members with properties and statics, so APIs read clean and features are easier to find. Plus logging lessons and a Dapper string gotcha that can wreck index seeks. #csharp #dotnet
bbb.dev
.NET drip - Saturday, March 28, 2026
000
Michael Jolley @baldbeardedbuilder.com · 23/03/2026
Still doing TryGetValue then set? This drop shows a one-lookup ref that makes Dictionary upserts faster, and digs into async vs scale, CLI-first wins, and DotNet Inspect for calmer containers. #csharp #dotnet
bbb.dev
.NET drip - Saturday, March 21, 2026
010
Michael Jolley @baldbeardedbuilder.com · 22/03/2026
Dropped a new release of my Weather extension for Command Palette. Dock support included with current conditions + hourly/daily forecasts. Pick it up on the MS Store (and Winget soon.) apps.microsoft.com/detail/9N01D...
000
Michael Jolley @baldbeardedbuilder.com · 19/03/2026
I'd love to see some content or documentation around Squads in GH. I use squads extensively locally, but for side projects I don't want my hand in all day, I'd love to use labels to manage the flow. It seems like that support exists, but I can't seem to kick off work.
010
Michael Jolley @baldbeardedbuilder.com · 17/03/2026
I feel attacked. Show off.
110
Michael Jolley @baldbeardedbuilder.com · 16/03/2026
Time you can fake, tests you can trust. This drop breaks down TimeProvider, plus a neat Aspire patch, zero-install .NET demos in the browser, and a swappable local voice AI pipeline. #dotnet #csharp #aspire
bbb.dev
.NET drip - Saturday, March 14, 2026
000
Michael Jolley @baldbeardedbuilder.com · 09/03/2026
I finally wrote the guide I wish someone had handed me years ago: a dead‑simple breakdown of typeof, GetType(), and IsAssignableFrom(). If you’ve ever stared at a type check thinking “this feels right… probably?”, this’ll clean that up fast. baldbeardedbuilder.com/blog/stop-gu...
baldbeardedbuilder.com
Stop Guessing Types in C#: typeof, GetType and IsAssignableFrom Explained
Let's break down the real jobs of typeof, object.GetType and Type.IsAssignableFrom with small, runnable examples and a few nerdy references for fun. You will learn when to reach for each API, why EF C...
010
Michael Jolley @baldbeardedbuilder.com · 09/03/2026
Hot paths overheating? In this drop we chill them with FrozenDictionary/FrozenSet for build-once, read-many speed on configs and feature flags. Plus EF Core polymorphism tradeoffs and Rx.NET 7 for real-time vibes. #csharp #dotnet #efcore
bbb.dev
.NET drip - Saturday, March 7, 2026
000
Michael Jolley @baldbeardedbuilder.com · 06/03/2026
Type safe unions, durable AI agents, and bloat free Blazor land in this drop. Patterns for saner APIs and SaaS using exhaustive matching, tenant aware throttling, and faster reads with Azure Redis. #csharp #dotnet #aspnetcore
bbb.dev
.NET drip - Thursday, March 5, 2026
010
Michael Jolley @baldbeardedbuilder.com · 04/03/2026
Speed and safety in this drop: the real cost of string length checks, faster async await in .NET 11, and SBOM baked into NuGet for sane audits. Plus, MAUI XAML with C# expressions that kill noisy converters. #csharp #dotnet #dotnetmaui
bbb.dev
.NET drip - Tuesday, March 3, 2026
010
Michael Jolley @baldbeardedbuilder.com · 02/03/2026
This drop swaps brittle role checks for permission-based auth and solves multi-node cache drift with HybridCache plus Redis. Plus, Wolverine-powered resilience and a cleaner, provider-agnostic .NET AI stack. #dotnet #aspnetcore #redis
bbb.dev
.NET drip - Sunday, March 1, 2026
000
Michael Jolley @baldbeardedbuilder.com · 27/02/2026
This drop jumps from on-device CLIP embeddings in .NET to a tidy Stripe Checkout in ASP.NET Core, showing how these pieces work in real apps. Plus a peek at LINQPad 9's AI and why EF Core may be the 2026 default. #csharp #dotnet #efcore
bbb.dev
.NET drip - Thursday, February 26, 2026
100
Michael Jolley @baldbeardedbuilder.com · 25/02/2026
Small choices, big wins. This drop shows how to keep industrial cameras streaming, force real WebView2 refreshes, validate EF Core before SaveChanges, and pick StartsWith for faster hot paths. #csharp #dotnet #efcore
bbb.dev
.NET drip - Tuesday, February 24, 2026
000