Series: Local LLMs for Data - Part 1 of 2
Here's the mistake everyone makes: they try to feed their CSV into an LLM. Don't. LLMs should generate queries, not consume data.
You've got a 500MB CSV file...
Thursday, 18 December 2025 10:00
//
18 minute read
I'm a .NET developer. When I started building LLM-powered systems, everyone pointed me toward LangChain. "It's the standard," they said. "All the examples use it." And they were right - if you're in...
Thursday, 18 December 2025 10:00
//
14 minute read
Native AOT promises to turn your .NET applications into tiny, self-contained executables that start instantly and run anywhere—no runtime installation required. It's magic when it works. But add...
Tuesday, 16 December 2025 15:00
//
23 minute read
Welcome to Part 9! In previous parts, we've built a robust RAG system that processes markdown blog posts and makes them searchable through semantic embeddings. Now it's time to expand our capabilities...
Monday, 15 December 2025 22:45
//
9 minute read
Well this has been my obsession for the past week. See the previous parts and what led to this; 'What if an LRU was an execution context.'. Now it's a set of 30 Nuget packages covering most major...
Sunday, 14 December 2025 13:35
//
20 minute read
How many times have you been blocked waiting for backend APIs to be ready? Or spent hours maintaining brittle mock data that becomes stale the moment requirements change?
Enter mostlylucid.mockllmapi...
Saturday, 13 December 2025 14:30
//
14 minute read
A tiny primitive that turns concurrent work into a coordinated, adaptive system.
"The Ephemeral Signals Pattern"
In Part 1 we built ephemeral execution - bounded, private, self-cleaning async...
Friday, 12 December 2025 16:00
//
22 minute read
In Part 1: Fire and Don't Quite Forget, we explored the theory behind ephemeral execution - bounded, private, debuggable async workflows that remember just enough to be useful and then evaporate.
This...
Friday, 12 December 2025 14:00
//
13 minute read
Most async systems either remember too much (logs, queues, persisted junk you never wanted)… or they remember nothing at all (fire-and-forget black holes that vanish the moment something goes...
Friday, 12 December 2025 12:00
//
15 minute read
Most systems degrade when overloaded. Memory fills up, queries slow down, users complain, servers crash.
A few unusual ones get better.
This article shows how an LRU-based behavioural memory becomes...
Tuesday, 09 December 2025 12:00
//
19 minute read
Most software architectures assume the system is static. DiSE assumes the system is alive.
Note: This is Part 4 in the "Cooking with DiSE" series. See Part 1, Part 2: Graduated Apprenticeships, and...
Monday, 08 December 2025 12:00
//
15 minute read
Scrapers are about to start using AI to mimic real users - so I built a bot detector that learns, adapts, and fights back.
Read Part 2: How Bots Got Smarter - The New Frontier in Bot Detection
👉 See...
Monday, 08 December 2025 07:00
//
17 minute read
By someone who can't stop analysing patterns, even their own.
As the category says, this is a far more personal essay than my usual work. I don't mind if you skip it...but if it resonates leave a...
Sunday, 07 December 2025 12:00
//
10 minute read
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...
Saturday, 06 December 2025 09:50
//
15 minute read
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...
Saturday, 06 December 2025 09:40
//
16 minute read
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...
Saturday, 06 December 2025 09:30
//
14 minute read
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...
Saturday, 06 December 2025 09:20
//
16 minute read
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...
Saturday, 06 December 2025 09:10
//
11 minute read
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...
Saturday, 06 December 2025 09:00
//
8 minute read
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...
Friday, 05 December 2025 14:30
//
21 minute read