06SQL Server → PostgreSQL · Part 6 Indexes, MVCC and Performance: Unlearning the Clustered Index PostgreSQL has no clustered index. Readers never block writers either, so here are MVCC, VACUUM, EXPLAIN ANALYZE and the new index types for SQL Server folks. Aug 6, 2026 · 7 min read →
09Database Design for Developers · Part 9 Indexes Explained With Query Plans: Which Columns to Index Which columns should you index? Three queries on 200,000 appointments, before and after, with the plans and timings from SQL Server and PostgreSQL. Sep 26, 2026 · 6 min read →
Fixes EF Core: two HasIndex calls on the same column create only one index (name them) Two HasIndex calls on one column produced a single index. EF Core merges same-property HasIndex calls unless each has a name, so name them. Sep 4, 2026 · 2 min read →
Fixes Git: 'fatal: Unable to create .git/index.lock: File exists' A leftover lock file blocks every Git write. How to check no Git process is running, then remove the stale index.lock safely. Nov 6, 2026 · 2 min read →
Fixes SQL Server error 2601: 'Cannot insert duplicate key row in object with unique index' A unique index already holds the value you inserted. Why SQL Server error 2601 happens, how it differs from 2627, and a safe insert. Nov 6, 2026 · 2 min read →
Fixes SQL Server error 1919: 'Column is of a type that is invalid for use as a key column in an index' An index key cannot be nvarchar(max). Why SQL Server error 1919 happens and the two fixes, a real length or INCLUDE. Nov 6, 2026 · 2 min read →
Databases & Data Database Indexes: Why Your Queries Are Slow Scan a million rows, or jump straight to one. How indexes work, when to add them, and the trade-offs nobody mentions. Jul 30, 2026 · 5 min read →
Fixes EF Core: 'Format of the initialization string does not conform to specification starting at index 0' SqlClient got a connection string name, not the string itself. The cause, reproduced with EF Core 10 and LocalDB, and the fix are inside. Nov 6, 2026 · 2 min read →
Fixes NuGet: 'error NU1301: Unable to load the service index for source' One unreachable package source fails the whole dotnet restore. Why a warm cache hides it, and the NuGet.config fix tested. Oct 9, 2026 · 2 min read →
Fixes Blazor: the h1 shows a focus ring after navigation (FocusOnNavigate and tabindex=-1) FocusOnNavigate moves keyboard focus to your heading. Your :focus-visible rule then draws a ring around it. Keep the focus, lose the ring. Sep 4, 2026 · 2 min read →
03Database Design for Developers · Part 3 One-to-Many Relationships: Foreign Keys and ON DELETE What ON DELETE should a foreign key use? Restrict, cascade and set null shown on real tables, plus the index every foreign key column needs. Sep 26, 2026 · 7 min read →
04From Prompt to Production · Part 4 Spec to Schema: Designing PostgreSQL Tables with AI Turn the spec into PostgreSQL DDL with AI. Then catch its mistakes in a schema review: the missing FK index, the naive timestamp, and the partial unique index. Aug 9, 2026 · 7 min read →
06The .NET Developer Interview · Part 6 SQL and EF Core Questions The data-access questions that decide senior vs junior. Indexes, the N+1 problem, tracking vs no-tracking, transactions and joins. Aug 7, 2026 · 7 min read →
06Database Design for Developers · Part 6 Constraints: Where Business Rules Belong Should validation live in the database or the app? NOT NULL, UNIQUE, CHECK, DEFAULT and a filtered unique index, each shown passing and failing. Sep 26, 2026 · 6 min read →
06From Prompt to Private · Part 6 Giving It Knowledge, Part One: Chunks, Embeddings and pgvector in the Clinic's Own Database The clinic's documents become searchable vectors. A heading-aware chunker, nomic-embed-text, pgvector with an HNSW index, and ingest that skips the unchanged. Sep 18, 2026 · 6 min read →
10Database Design for Developers · Part 10 Soft Delete, Audit Columns and History Tables How to implement soft delete and an audit trail. A deleted_at column with a partial unique index, timestamps by trigger, temporal tables versus a history table. Sep 26, 2026 · 6 min read →
11From Prompt to Production · Part 11 The Hardening Pass: AI as a Hostile Reviewer Ask the AI to attack its own app. The open self-registration it shipped, the missing role checks, the CHECK constraint it forgot, and the index EXPLAIN wanted. Aug 9, 2026 · 7 min read →
Fixes PostgreSQL: 'there is no unique or exclusion constraint matching the ON CONFLICT specification' (42P10) An upsert names columns with no unique constraint. Why a plain index is not enough and the one-line fix, with real output. Nov 6, 2026 · 2 min read →