author

Hi, I'm Scott Galloway.

Software engineer, former Microsoft ASP.NET Program Manager. Practical notes on .NET, AI, search, and building Stylo.Bot and other open-source tools. About me · Get in touch

Latest articles

All articles
Find your next readFilters
Reset

Page 10 of 82 (Total items: 817)
Data Hierarchies Part 1.5: PostgreSQL ltree with EF Core

PostgreSQL's ltree extension gives you materialised paths with database-native superpowers: GiST indexes, specialised operators like @> and <@, and powerful pattern matching. If you're committed to PostgreSQL and want the best hierarchy query performance,…

Data Hierarchies Part 1.4: Nested Sets with EF Core

Nested sets encode the entire tree structure into just two integers per node - Left and Right boundaries from a depth-first walk. Finding all descendants becomes a simple range query, and ORDER BY Left gives you perfect display order. The catch? Every insert…

Data Hierarchies Part 1.3: Materialised Path with EF Core

Materialised paths store the complete ancestry as a delimited string - like /1/3/7/ - making ancestors instantly readable without any joins. Perfect for breadcrumb generation and human-readable debugging, though moving subtrees means updating every…

Data Hierarchies Part 1.2: Closure Table with EF Core

Closure tables precompute and store every ancestor-descendant relationship, trading storage space for blazing-fast reads. This is the approach this blog uses for its comment system - when reads vastly outnumber writes, the extra insert complexity pays off with…

Data Hierarchies Part 1.1: Adjacency List with EF Core

The adjacency list is the simplest and most intuitive approach to storing hierarchical data - each row just points to its parent. It's what most developers reach for first, and for shallow trees with frequent moves, it's often the right choice. This article…

Data Hierarchies: Managing Hierarchical Data with EF Core and PostgreSQL (Overview)

Hierarchical data is everywhere in software development: threaded comments, organisational charts, file systems, product categories, and forum discussions. The eternal question of "how do I store a tree in a relational database?" has haunted developers since…

No we're likely not reaching AGI anytime soon: The Behaviourist Fallacy in AI Subsystem Development

Here's an uncomfortable truth that nobody in the AI hype machine wants to discuss: We still don't know what intelligence actually is. Not in humans. Not in animals. And certainly not in machines. This isn't just academic hairsplitting. It's the foundational…

Modern Release Strategies with GitHub Actions

The core principle: make releases fast and painless, and you'll release more often. This is critical for agile development - rapid, reliable deployments create the fast feedback loop you need. When deploying is scary or slow, teams batch up changes, increasing…

Data Access in .NET: Comparing ORMs and Mapping Strategies (Part 2 - Dapper, Raw SQL, and Hybrid Approaches)

Welcome to Part 2 of our comprehensive guide to data access in .NET! In Part 1, we explored Entity Framework Core in depth, including SQL generation, common pitfalls, and that critical warning about proxies and caching. In this article, we'll explore the…

Data Access in .NET: Comparing ORMs and Mapping Strategies (Part 1 - Entity Framework Core)

When building .NET applications, one of the most important architectural decisions you'll make is how to handle data access and object mapping. The .NET ecosystem offers a rich variety of approaches, from full-featured ORMs to bare-metal SQL execution. Each…

Page 10 of 82 (Total items: 817)
logo

© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.