Everything I have filmed
Live builds, walkthroughs and the short answers to the questions I get asked most. Newest first. Most of these open on YouTube, which is where they live.
Long form
2025
12 videosThe 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:3013,762 views525 likes VideoAsync 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,469 views281 likes VideoWhy 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,732 views346 likes VideoEasy 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,108 views631 likes VideoDependency 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,503 views344 likes VideoStop 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,588 views580 likes VideoStop Using ToLower() for Comparisons! The Fast, Correct Way in C#
14:2649,880 views1,802 likes VideoUnderstand Retrieval Augmented Generation in Under 8 Minutes
8:011,104 views37 likesYouTube VideoYou Won't Believe How EASY WinUI XAML Styling Can Be
21:3916,065 views383 likesYouTube VideoWhat Is The BEST Windows UI Framework For Your Project
10:0714,562 views333 likesYouTube VideoSupercharge Your WinForms Projects with .NET 9 Roslyn Analyzers
3:541,111 views31 likesYouTube VideoWindows Devs Rejoice! Building Local AI Just Got Easy!
10:031,008 views60 likesYouTube2024
19 videosWhat are Vector Databases and How Do They Give AI Superpowers?
8:571,722 views82 likesYouTube VideoHow Do Machine Learning Models Actually Work?
10:013,961 views130 likesYouTube VideoThe 7-Minute Guide to Understanding Artificial Intelligence
7:137,376 views149 likesYouTube VideoBuilding 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,080 views186 likes VideoSoft Deletes: The Upgrade Your EF Core Needs
The Bongo Cat VS Code extension adds an animated coding companion to the status bar.
10:055,810 views291 likes VideoBuilding 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,284 views404 likes VideoHandle 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,231 views605 likes VideoDon'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:4821,781 views921 likes VideoThe Best C# Collections Explained
C# 12 expands aliases to tuples, pointers, arrays, and most other types, helping shorten repeated or complex declarations.
4:2215,899 views757 likes VideoC#: 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:5363,553 views2,756 likes VideoShould 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,661 views77 likes VideoWhat 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:2414,788 views546 likes VideoStop 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,443 views223 likes VideoShould 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,520 views64 likes VideoYou 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,339 views64 likes VideoShould 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,868 views181 likes VideoShould 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:4020,329 views778 likes VideoMVC 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,308 views673 likes VideoAre 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,340 views61 likes2023
1 video2021
17 videosMastering 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,256 views268 likes VideoVSCode'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,046 views314 likes VideoSpell 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,006 views179 likes VideoWrite 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,493 views150 likes VideoNavigate 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,044 views48 likes VideoLint Markdown in VS Code
MarkdownLint provides immediate formatting diagnostics, repository-level rules, IntelliSense-backed configuration, and automatic fixes in Visual Studio Code.
4:549,212 views123 likes VideoScreenshot your Code in VS Code
Value types and reference types differ in how they use the stack and heap in .NET.
3:5723,796 views462 likes VideoManage 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,345 views81 likes VideoKeep 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:571,985 views43 likes VideoWrite 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:001,986 views59 likes VideoWork 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,005 views198 likes VideoFormat 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,170 views28 likes VideoWhat 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:3925,907 views805 likes VideoManage 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,011 views165 likes VideoTesting 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,890 views83 likes VideoAzure 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,759 views302 likes VideoBracket 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,150 views120 likesShorts
2025
7 shortsFix 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,873 views84 likes ShortHow 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,516 views57 likes ShortC# '== 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,882 views109 likes ShortCan 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,758 views71 likes ShortToLower is Killing your App Performance!
`Task.Wait` blocks its thread, while `await` releases that thread for other work until the operation completes.
0:431,853 views54 likes ShortMake 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,889 views55 likes ShortYou 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,572 views45 likes2024
22 shortsEF Core Queries Go BOOM!
Using an appropriate `StringComparison` avoids extra allocations and produces safer case-insensitive string comparisons.
0:593,470 views111 likes ShortIExceptionHandler 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,546 views79 likes ShortSlow 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,823 views137 likes ShortValue 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,414 views75 likes ShortReference 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,170 views52 likes ShortDon'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,716 views139 likes ShortString 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,147 views102 likes ShortStack vs. Heap in .NET
Git stash temporarily saves uncommitted changes, restores a clean working directory, and lets you reapply selected work later.
1:003,338 views147 likes ShortImmutability 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:56959 views41 likes ShortI 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,036 views0 likes ShortIt's ALWAYS CORS!!!!
A live debugging attempt moves from successful compilation to a failed fetch before identifying CORS as the culprit.
0:24610 views17 likes ShortWhy .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,117 views28 likes ShortHow 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:29829 views27 likes ShortBuild 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,858 views37 likes ShortWhat 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,570 views40 likes ShortTake Me Home VS Code
A Friday-evening developer lament captures a broken build, failing tests, and Visual Studio Code.
0:52219 views18 likes ShortHow 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,048 views31 likes ShortEdit GitHub Gists in VS Code!
The Gist extension creates public or private GitHub Gists from Visual Studio Code through the command palette.
1:00588 views9 likes ShortWhere'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:01566 views15 likes ShortWhat is git clean 🤯
`git clean` removes untracked files, with flags controlling forced deletion, untracked directories, and ignored files.
0:48545 views9 likes ShortWhat is GitHub Gist?
GitHub Gists provide lightweight, version-controlled sharing for multiple public or private files without full repository features.
0:57477 views16 likes ShortWhat IS git switch!?
`git switch` separates branch switching from `git checkout`, while `git restore` handles restoring paths from an index or tree.
1:00512 views7 likes2023
12 shortsHow 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:00459 views9 likes ShortBetter C# Anonymous Functions & Lambdas
A playful Blazor movie-trailer riff contrasts .NET web development with MVC, postbacks, state, JavaScript, and jQuery.
0:42478 views13 likes ShortAlias Any Type in C# 12
C# pattern matching with `is null` and `is not null` avoids misleading results from overloaded equality operators.
1:56809 views30 likes ShortI Tried NeoVIM
A brief outtake cycles through wrong guesses before landing on a joke about leaving Visual Studio Code.
0:2647,429 views439 likes ShortI 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,080 views145 likes ShortScreenshot VS Code like a pro 📸
CodeSnap creates themed code screenshots directly inside Visual Studio Code with a live preview and selectable lines.
1:004,146 views41 likes ShortBongo 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:51632 views13 likes ShortHTML in VS Code = Easy Mode
HTML Biscuits adds customizable annotations beside closing tags so deeply nested HTML is easier to navigate.
1:00484 views13 likes ShortWhat if AI takes developer jobs!?
A brief comedy pitch invites singles to an OnlyFans featuring bald, bearded feet.
0:11426 views5 likes ShortStop misspelling code in VS Code!
C# 12 adds default parameter values and `params` support to anonymous functions and lambda expressions.
0:59526 views9 likes Short.NET Blazor movie trailer
Code Spell Checker finds spelling mistakes across documentation, comments, variables, and function names, including words embedded in camel case.
0:38439 views11 likes ShortI’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:33392 views9 likesThe .NET Drip
Every Sunday. One .NET tip, and the links that were actually worth reading.
No fluff, no "10 tips to 10x your productivity." One thing worth knowing, plus whatever I hit that week that made me stop and read it twice. Unsubscribe whenever, no hard feelings.
Subscribe for free · read the archive