Build it with me. Pauses included.

Long form49 builds + lessons
Short form42 quick answers

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.

Newest / csharp / 0:47

The C# const trap 🪤

Watch the video →

Long form

Newest first

2025

Video / csharp

The 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 / csharp

Async 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 / data

Why 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 / csharp

Easy 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 / aspnetcore

Dependency 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 / csharp

Stop 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 / csharp

Stop Using ToLower() for Comparisons! The Fast, Correct Way in C#

14:2650,231 views1,810 likes
Video / dev-life

Understand Retrieval Augmented Generation in Under 8 Minutes

8:011,122 views37 likesYouTube
Video / windows

You Won't Believe How EASY WinUI XAML Styling Can Be

21:3918,310 views400 likesYouTube
Video / windows

What Is The BEST Windows UI Framework For Your Project

10:0716,878 views345 likesYouTube
Video / csharp

Supercharge Your WinForms Projects with .NET 9 Roslyn Analyzers

3:541,125 views31 likesYouTube
Video / copilot-ai

Windows Devs Rejoice! Building Local AI Just Got Easy!

10:031,019 views60 likesYouTube

2024

Video / copilot-ai

What are Vector Databases and How Do They Give AI Superpowers?

8:571,732 views82 likesYouTube
Video / copilot-ai

How Do Machine Learning Models Actually Work?

10:014,043 views130 likesYouTube
Video / dev-life

The 7-Minute Guide to Understanding Artificial Intelligence

7:137,607 views150 likesYouTube
Video / copilot-ai

Building 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 / data

Soft 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 / aspnetcore

Building 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 / aspnetcore

Handle 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 / data

Don'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 / csharp

The 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 / csharp

C#: 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 / csharp

Should 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 / csharp

What 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 / csharp

Stop 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 / csharp

Should 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 / csharp

You 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 / csharp

Should 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 / aspnetcore

Should 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 / aspnetcore

MVC 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 / csharp

Are 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 / vscode

Mastering 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 / vscode

VSCode'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 / vscode

Spell 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 / vscode

Write 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 / vscode

Navigate 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 / vscode

Lint 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 / vscode

Screenshot 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 / vscode

Manage 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 / vscode

Keep 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 / vscode

Write 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 / vscode

Work 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 / vscode

Format 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 / github

What 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 / vscode

Manage 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 / vscode

Testing 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 / cloud

Azure 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 / vscode

Bracket 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, fast

2025

Short / aspnetcore

Fix 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 / csharp

How 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 / csharp

C# '== 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 / csharp

Can 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 / csharp

ToLower 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 / data

Make 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 / data

You 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 / data

EF Core Queries Go BOOM!

Using an appropriate `StringComparison` avoids extra allocations and produces safer case-insensitive string comparisons.

0:593,502 views111 likes
Short / aspnetcore

IExceptionHandler 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 / data

Slow 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 / csharp

Value 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 / csharp

Reference 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 / aspnetcore

Don'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 / csharp

String 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 / csharp

Stack 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 / csharp

Immutability 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-life

I 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 / aspnetcore

It'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-ai

Why .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 / csharp

How 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 / vscode

Build 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 / git

What 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 / vscode

Take Me Home VS Code

A Friday-evening developer lament captures a broken build, failing tests, and Visual Studio Code.

0:52226 views18 likes
Short / git

How 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 / vscode

Edit 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 / git

Where'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 / git

What is git clean 🤯

`git clean` removes untracked files, with flags controlling forced deletion, untracked directories, and ignored files.

0:48561 views11 likes
Short / github

What 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 / git

What 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 / csharp

How 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 / csharp

Better 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 / csharp

Alias 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-life

I 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 / vscode

I 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 / vscode

Screenshot 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-life

Bongo 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 / vscode

HTML 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-life

What if AI takes developer jobs!?

A brief comedy pitch invites singles to an OnlyFans featuring bald, bearded feet.

0:11433 views5 likes
Short / vscode

Stop 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-life

I’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
The .NET Drip

A little .NET in your inbox.

One useful tip, a few links worth your time, and the occasional war story. No inbox flood.

Free to join. Unsubscribe whenever.

Read the archive.