Build it with me. Pauses included.
Real code, the occasional wrong turn, and enough context to know when the shiny pattern is the wrong one.
Everything I have filmed.
Long builds and short answers live together here, but not mixed willy nilly.

The C# const trap 🪤
Watch the video →Long form
Newest first2025
Video / csharpThe Secret to Mastering Queue, Stack and Dictionary in C#!
EF Core soft deletes can be implemented with a nullable deletion timestamp, a save-changes interceptor, and global query filters.
13:3014,644 views536 likes→
Video / csharpAsync Void in C#: The Trap Card You Keep Playing
The C# `init` accessor supports object initializers while preventing properties from being changed after initialization.
8:175,781 views288 likes→
Video / dataWhy Your OnModelCreating Is a Hot Mess (And How to Fix It)
Entity Framework Core configurations become cleaner and testable when persistence rules move into `IEntityTypeConfiguration` classes loaded through assembly scanning.
16:066,870 views349 likes→
Video / csharpEasy LINQ Tips Every Developer Should Know!
Practical LINQ techniques improve performance and readability by avoiding repeated work, unnecessary allocations, unstable pagination, and accidental client-side processing.
13:4913,643 views644 likes→
Video / aspnetcoreDependency Injection Mistakes You Need to Avoid!
Five ASP.NET Core dependency injection failures cover missing registrations, circular dependencies, lifetime mismatches, ambiguous constructors, and scoped services used by background work.
7:578,678 views346 likes→
Video / csharpStop Using == null: The Safer C# Pattern You Need Today!
C# inequality operators and `is not` pattern matching behave differently around constants, boxing, type checks, nulls, and overloaded operators.
11:4115,920 views585 likes→
Video / csharpStop Using ToLower() for Comparisons! The Fast, Correct Way in C#
14:2650,231 views1,810 likes→
Video / dev-lifeUnderstand Retrieval Augmented Generation in Under 8 Minutes
8:011,122 views37 likesYouTube→
Video / windowsYou Won't Believe How EASY WinUI XAML Styling Can Be
21:3918,310 views400 likesYouTube→
Video / windowsWhat Is The BEST Windows UI Framework For Your Project
10:0716,878 views345 likesYouTube→
Video / csharpSupercharge Your WinForms Projects with .NET 9 Roslyn Analyzers
3:541,125 views31 likesYouTube→
Video / copilot-aiWindows Devs Rejoice! Building Local AI Just Got Easy!
10:031,019 views60 likesYouTube→2024
Video / copilot-aiWhat are Vector Databases and How Do They Give AI Superpowers?
8:571,732 views82 likesYouTube→
Video / copilot-aiHow Do Machine Learning Models Actually Work?
10:014,043 views130 likesYouTube→
Video / dev-lifeThe 7-Minute Guide to Understanding Artificial Intelligence
7:137,607 views150 likesYouTube→
Video / copilot-aiBuilding AI with .NET: ChatGPT 4o, Dall-E 3 & Whisper
A workplace ban on LINQ and unit tests prompts a critique of blanket restrictions, hard-coded SQL, and development rules rooted in past failures.
16:014,095 views186 likes→
Video / dataSoft Deletes: The Upgrade Your EF Core Needs
The Bongo Cat VS Code extension adds an animated coding companion to the status bar.
10:055,858 views291 likes→
Video / aspnetcoreBuilding Custom Middleware for ASP.NET Core
Queues, stacks, and dictionaries solve distinct C# collection problems involving fair ordering, last-in-first-out history, and fast typed lookups.
13:4112,708 views413 likes→
Video / aspnetcoreHandle ASP.NET Core Exceptions Globally
C# pattern matching can compare a boxed runtime value with a constant even when equality operators reject the incompatible static types.
9:3416,612 views613 likes→
Video / dataDon't Make These Entity Framework Core Mistakes
Five Entity Framework Core performance pitfalls cover unnecessary tracking, lazy loading, Cartesian explosion, buffering, and ineffective query caching.
8:4823,208 views938 likes→
Video / csharpThe Best C# Collections Explained
C# 12 expands aliases to tuples, pointers, arrays, and most other types, helping shorten repeated or complex declarations.
4:2216,479 views765 likes→
Video / csharpC#: Class, Struct or Record - Which Should You Choose?
Classes, structs, records, and record structs are compared through reference versus value semantics, equality, mutability, and practical selection criteria.
7:5367,850 views2,841 likes→
Video / csharpShould You be Using the var Keyword in C#?
Choosing among `IEnumerable`, `ICollection`, `IList`, and `IQueryable` depends on whether data needs iteration, mutation, positional access, or remote query processing.
2:581,709 views78 likes→
Video / csharpWhat is the Record Type in C#?
Returning `Task` instead of `async void` keeps asynchronous work observable, testable, awaitable, and able to propagate exceptions correctly.
4:2415,421 views570 likes→
Video / csharpStop Using the var Keyword!
Explicit C# types can reduce the mental effort of understanding inferred variables, while target-typed constructor syntax offers a concise compromise.
2:426,458 views223 likes→
Video / csharpShould LINQ Be Banned from C#!?
Microsoft's AI Smart Components add clipboard-driven form filling, suggested combo-box options, and sentence autocomplete to .NET web interfaces.
3:201,523 views64 likes→
Video / csharpYou Should Probably Stop Using Task.Wait in C#
EF Core's `AsSplitQuery` avoids Cartesian explosion by loading sibling relationships with separate SQL queries and combining the results.
2:122,398 views63 likes→
Video / csharpShould you await Inside Your C# Loops?
EF Core lazy loading can silently create N+1 database queries, while eager loading or targeted projections can retrieve data more efficiently.
3:283,893 views181 likes→
Video / aspnetcoreShould my Services be Transient, Scoped, or Singleton?
.NET dependency injection lifetimes are explained through transient, scoped, and singleton services, including the risks of mutable singletons and injecting shorter-lived dependencies into longer-lived services.
3:4021,833 views801 likes→
Video / aspnetcoreMVC vs. Minimal API vs. FastEndpoints - Which is Best for Your Project?
ASP.NET controllers, minimal APIs, and FastEndpoints offer different tradeoffs in organization, dependency injection, documentation, syntax, and built-in features.
4:3925,722 views676 likes→
Video / csharpAre People Wrong About .NET?
Common startup objections to .NET are challenged through its cross-platform support, open-source ecosystem, deployment flexibility, performance, and modern tooling.
2:571,352 views62 likes→2023
2021
Video / vscodeMastering CSV with VS Code
Rainbow CSV makes delimited files easier to inspect in VS Code through color-coded columns, validation, alignment, headers, and SQL-like RBQL queries.
6:4120,652 views267 likes→
Video / vscodeVSCode's New YAML Support is AWESOME
Red Hat's YAML extension improves Visual Studio Code with validation, automatic indentation, schemas, autocomplete, and contextual hover information.
8:2237,335 views315 likes→
Video / vscodeSpell Check in VS Code with Code Spell Checker
Code Spell Checker finds mistakes in documentation, comments, variables, and function names while supporting quick fixes, custom dictionaries, additional languages, and targeted exclusions.
5:3813,026 views179 likes→
Video / vscodeWrite Better TailwindCSS in VS Code
Using `StringComparison` avoids the allocations, cultural errors, and slower performance caused by converting strings with `ToUpper` or `ToLower` before comparison.
6:1712,498 views150 likes→
Video / vscodeNavigate faster in VS Code with Footsteps
Footsteps highlights recently edited lines in Visual Studio Code and gradually fades older changes, making it easier to retrace work across files.
5:002,046 views48 likes→
Video / vscodeLint Markdown in VS Code
MarkdownLint provides immediate formatting diagnostics, repository-level rules, IntelliSense-backed configuration, and automatic fixes in Visual Studio Code.
4:549,615 views125 likes→
Video / vscodeScreenshot your Code in VS Code
Value types and reference types differ in how they use the stack and heap in .NET.
3:5723,801 views461 likes→
Video / vscodeManage GitHub Pull Requests & Issues with VS Code
GitHub Pull Requests and Issues brings reviews, queries, local PR checkout, issue management, and TODO-to-issue workflows into Visual Studio Code.
7:286,461 views81 likes→
Video / vscodeKeep Track of VS Code Windows with Peacock
Entity Framework Core's `AsNoTracking` can accelerate read-only queries by avoiding the overhead of change tracking.
7:572,086 views44 likes→
Video / vscodeWrite Code in Containers with VS Code and Remote Containers
Visual Studio Code's Remote Containers extension creates consistent, disposable development environments that can package SDKs, CLIs, extensions, ports, and setup commands with a project.
6:002,005 views59 likes→
Video / vscodeWork with Others Using Live Share in VS Code
Visual Studio Live Share supports remote pair programming, reviews, shared debugging, chat, and terminals without requiring collaborators to clone or configure the project.
6:4028,809 views203 likes→
Video / vscodeFormat Your Code in VS Code with Prettier
The Prettier extension integrates opinionated formatting into Visual Studio Code while respecting project configuration, local versions, and plugins.
8:091,203 views28 likes→
Video / githubWhat is GitHub Gist? (Explained)
GitHub Gists provide lightweight version-controlled storage for snippets, documents, data, multiple related files, embedded code, and simple web pages.
5:3926,190 views809 likes→
Video / vscodeManage GitHub Gists in VS Code
The Gist extension manages GitHub Gists inside Visual Studio Code, supporting authentication, creation, insertion into documents, and default privacy settings.
5:455,020 views165 likes→
Video / vscodeTesting APIs with REST Client in VS Code
The OpenAI .NET SDK 2.0 provides specialized clients for streaming chat, DALL-E image generation, and Whisper audio transcription.
6:295,928 views82 likes→
Video / cloudAzure File Shares as Container Volume Mounts
Azure File Storage can provide persistent volume mounts for containerized apps running in Azure App Service through path mappings and Docker Compose.
5:2515,801 views302 likes→
Video / vscodeBracket Pair Colorizer 2 - VS Code Extension Highlight
Bracket Pair Colorizer 2 distinguishes nested brackets and parentheses with colors, highlights, and scope lines that can be extensively customized.
5:3711,181 views120 likes→Shorts
Small answers, fast2025
Short / aspnetcoreFix Ambiguous Constructors in ASP.NET Dependency Injection!
Ambiguous ASP.NET Core dependency injection constructors can be resolved with an explicit constructor attribute, a factory, or keyed services.
0:542,895 views84 likes→
Short / csharpHow Pattern Matching Saves Your Day!
ASP.NET Core exception handling progresses from built-in middleware and custom middleware to modular .NET 8 `IExceptionHandler` implementations registered in priority order.
0:314,538 views57 likes→
Short / csharpC# '== null': There's a Better Way!
The Peacock extension color-codes VS Code workspaces to distinguish projects, Live Share sessions, containers, WSL, and remote environments.
1:032,890 views109 likes→
Short / csharpCan One Letter Break Your App!?
Parameterizing Entity Framework queries can let EF reuse a compiled query shape and help the database reuse its query plan.
0:354,762 views71 likes→
Short / csharpToLower is Killing your App Performance!
`Task.Wait` blocks its thread, while `await` releases that thread for other work until the operation completes.
0:431,860 views54 likes→
Short / dataMake Entity Framework Faster with Parameterized Queries
Culture-sensitive lowercasing can break string comparisons, as demonstrated by the Turkish dotless i, while `OrdinalIgnoreCase` remains culture agnostic.
1:051,902 views55 likes→
Short / dataYou Won't Believe The Hidden Dangers Of Lazy Loading
The REST Client VS Code extension sends REST and GraphQL requests from `.http` or `.rest` files with support for headers, bodies, variables, authentication, and request conversion.
1:012,596 views45 likes→2024
Short / dataEF Core Queries Go BOOM!
Using an appropriate `StringComparison` avoids extra allocations and produces safer case-insensitive string comparisons.
0:593,502 views111 likes→
Short / aspnetcoreIExceptionHandler Makes ASP.NET Exceptions Easy
.NET 8's `IExceptionHandler` supports centralized ASP.NET exception handling through built-in middleware and modular handlers for specific exception types.
0:571,563 views78 likes→
Short / dataSlow Entity Framework Core queries? Let’s speed them up!
C# value types are passed by value, so assigning one variable to another creates a copy that can change independently.
1:004,873 views139 likes→
Short / csharpValue Types in C#
Using `var` can reduce repetition and simplify refactoring, but descriptive names and team-wide consistency matter more than personal preference.
0:541,436 views76 likes→
Short / csharpReference Types in C#
C# reference types hold references to objects, so two variables can point to the same instance and observe the same changes.
1:001,177 views52 likes→
Short / aspnetcoreDon't Make This Dependency Injection Mistake!
Injecting a shorter-lived service into a longer-lived one effectively extends the dependency's lifetime and creates invalid service designs.
1:493,736 views139 likes→
Short / csharpString or string in C#?
C# `string` is an alias for `System.String`, making the choice primarily a matter of style and team consistency.
0:552,155 views101 likes→
Short / csharpStack vs. Heap in .NET
Git stash temporarily saves uncommitted changes, restores a clean working directory, and lets you reapply selected work later.
1:003,472 views148 likes→
Short / csharpImmutability in .NET just got a LOT easier
C# records provide value-based equality, concise declarations, useful printing, deconstruction, and immutable copying, while record structs offer value-type behavior.
0:56968 views41 likes→
Short / dev-lifeI Tried Voice Coding, It Was A Disaster!
A voice-coding attempt gets tangled in repeated "delete word" commands while trying to produce an export, class, and stream.
1:001,037 views0 likes→
Short / aspnetcoreIt's ALWAYS CORS!!!!
A live debugging attempt moves from successful compilation to a failed fetch before identifying CORS as the culprit.
0:24611 views17 likes→
Short / copilot-aiWhy .NET AI Smart Components are game-changing
ASP.NET Core middleware processes requests in an ordered pipeline and can modify responses, short-circuit execution, or consume injected services.
1:001,134 views28 likes→
Short / csharpHow to Create a Custom HttpClient Logger (2024)
A custom `IHttpClientLogger` can replace verbose default HTTP client logs with focused request, response, and failure information.
1:29836 views28 likes→
Short / vscodeBuild Unity games in VS Code!
Microsoft's Unity extension brings C# tooling, IntelliCode support, and debugging to Visual Studio Code, with Unity package version 2.0.20 required for some setups.
0:491,965 views38 likes→
Short / gitWhat is Git Cherry-Pick?
Git cherry-pick applies a specific commit from another branch while preserving the rest of that branch's work.
0:521,600 views40 likes→
Short / vscodeTake Me Home VS Code
A Friday-evening developer lament captures a broken build, failing tests, and Visual Studio Code.
0:52226 views18 likes→
Short / gitHow to REALLY use git stash (save your work!)
Awaiting inside a loop runs operations sequentially, while collecting tasks and using `Task.WhenAll` enables concurrency when ordering is not required.
0:581,054 views31 likes→
Short / vscodeEdit GitHub Gists in VS Code!
The Gist extension creates public or private GitHub Gists from Visual Studio Code through the command palette.
1:00614 views9 likes→
Short / gitWhere's my code!?
The Peacock extension assigns colors to Visual Studio Code workspaces, with customizable targets and integrations for remote development and Live Share.
1:01568 views15 likes→
Short / gitWhat is git clean 🤯
`git clean` removes untracked files, with flags controlling forced deletion, untracked directories, and ignored files.
0:48561 views11 likes→
Short / githubWhat is GitHub Gist?
GitHub Gists provide lightweight, version-controlled sharing for multiple public or private files without full repository features.
0:57505 views16 likes→
Short / gitWhat IS git switch!?
`git switch` separates branch switching from `git checkout`, while `git restore` handles restoring paths from an index or tree.
1:00533 views8 likes→2023
Short / csharpHow has .NET not had this before!?
C# collection expressions simplify array and list creation, add spread syntax, and can support custom collection types through a builder attribute.
1:00464 views9 likes→
Short / csharpBetter C# Anonymous Functions & Lambdas
A playful Blazor movie-trailer riff contrasts .NET web development with MVC, postbacks, state, JavaScript, and jQuery.
0:42489 views13 likes→
Short / csharpAlias Any Type in C# 12
C# pattern matching with `is null` and `is not null` avoids misleading results from overloaded equality operators.
1:56813 views30 likes→
Short / dev-lifeI Tried NeoVIM
A brief outtake cycles through wrong guesses before landing on a joke about leaving Visual Studio Code.
0:2647,722 views440 likes→
Short / vscodeI Don't Hate YAML Anymore!
Red Hat's YAML extension helps Visual Studio Code detect structural, indentation, and type problems, with stronger validation when a schema is available.
1:008,469 views146 likes→
Short / vscodeScreenshot VS Code like a pro 📸
CodeSnap creates themed code screenshots directly inside Visual Studio Code with a live preview and selectable lines.
1:004,196 views41 likes→
Short / dev-lifeBongo cat loves my code!
C# 12 primary constructors reduce boilerplate by exposing constructor parameters throughout a type, but introduce important rules around overloads, naming conflicts, and generated properties.
0:51647 views13 likes→
Short / vscodeHTML in VS Code = Easy Mode
HTML Biscuits adds customizable annotations beside closing tags so deeply nested HTML is easier to navigate.
1:00500 views12 likes→
Short / dev-lifeWhat if AI takes developer jobs!?
A brief comedy pitch invites singles to an OnlyFans featuring bald, bearded feet.
0:11433 views5 likes→
Short / vscodeStop misspelling code in VS Code!
C# 12 adds default parameter values and `params` support to anonymous functions and lambda expressions.
0:59542 views9 likes→
Short / blazor.NET Blazor movie trailer
Code Spell Checker finds spelling mistakes across documentation, comments, variables, and function names, including words embedded in camel case.
0:38449 views11 likes→
Short / dev-lifeI’ve Never Built this for a Client
A developer with nearly 20 years of experience confesses that he has never built tic-tac-toe for a client, then detours into microphones, a back scratcher, and Vue.js.
0:33395 views9 likes→A little .NET in your inbox.
One useful tip, a few links worth your time, and the occasional war story. No inbox flood.
