<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>thurley.dev</title><description>Developer, architect, and builder of things.</description><link>https://thurley.dev/</link><item><title>The Business Case for AI Adoption</title><link>https://thurley.dev/blog/ai-fundamentals-business-case/</link><guid isPermaLink="true">https://thurley.dev/blog/ai-fundamentals-business-case/</guid><description>Why organizations should invest in AI. ROI frameworks, competitive dynamics, practical adoption paths, and the risk of waiting.</description><pubDate>Thu, 19 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Choosing the Right Model</title><link>https://thurley.dev/blog/ai-fundamentals-choosing-models/</link><guid isPermaLink="true">https://thurley.dev/blog/ai-fundamentals-choosing-models/</guid><description>LLMs vs SLMs, open vs closed, cloud vs on-device. A practical framework for selecting the right AI model for your use case, budget, and constraints.</description><pubDate>Thu, 19 Mar 2026 00:00:00 GMT</pubDate></item><item><title>How LLMs Actually Work</title><link>https://thurley.dev/blog/ai-fundamentals-how-llms-work/</link><guid isPermaLink="true">https://thurley.dev/blog/ai-fundamentals-how-llms-work/</guid><description>What happens inside a large language model. Neural networks, transformers, attention, training, parameters, and inference. How the machine turns text into text.</description><pubDate>Thu, 19 Mar 2026 00:00:00 GMT</pubDate></item><item><title>The Modern AI Stack: A Practical Overview</title><link>https://thurley.dev/blog/ai-fundamentals-overview/</link><guid isPermaLink="true">https://thurley.dev/blog/ai-fundamentals-overview/</guid><description>A high-level map of the modern AI stack. LLMs, tokens, embeddings, RAG, fine-tuning, agents, and how they all fit together. The first post in a series covering AI fundamentals from the ground up.</description><pubDate>Thu, 19 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Embeddings and Vector Space</title><link>https://thurley.dev/blog/ai-fundamentals-embeddings-and-vectors/</link><guid isPermaLink="true">https://thurley.dev/blog/ai-fundamentals-embeddings-and-vectors/</guid><description>How text becomes numbers that capture meaning. Embeddings, vector similarity, vector databases, and the practical applications that depend on them.</description><pubDate>Thu, 19 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Prompting and Inference</title><link>https://thurley.dev/blog/ai-fundamentals-prompting-and-inference/</link><guid isPermaLink="true">https://thurley.dev/blog/ai-fundamentals-prompting-and-inference/</guid><description>How to communicate effectively with LLMs. System prompts, few-shot examples, chain-of-thought, structured output, temperature, and sampling strategies.</description><pubDate>Thu, 19 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Fine-Tuning and Model Customization</title><link>https://thurley.dev/blog/ai-fundamentals-fine-tuning/</link><guid isPermaLink="true">https://thurley.dev/blog/ai-fundamentals-fine-tuning/</guid><description>When and how to fine-tune an LLM. Full fine-tuning, LoRA, RLHF, and the decision framework for choosing between fine-tuning, RAG, and prompting.</description><pubDate>Thu, 19 Mar 2026 00:00:00 GMT</pubDate></item><item><title>AI Agents and Tool Use</title><link>https://thurley.dev/blog/ai-fundamentals-agents/</link><guid isPermaLink="true">https://thurley.dev/blog/ai-fundamentals-agents/</guid><description>How models move beyond text generation to take actions. Function calling, tool use, agent architectures, and building autonomous workflows.</description><pubDate>Thu, 19 Mar 2026 00:00:00 GMT</pubDate></item><item><title>RAG: Teaching AI What It Doesn&apos;t Know</title><link>https://thurley.dev/blog/ai-fundamentals-rag/</link><guid isPermaLink="true">https://thurley.dev/blog/ai-fundamentals-rag/</guid><description>Retrieval-Augmented Generation explained. How to give LLMs access to your own data through chunking, embedding, retrieval, and generation.</description><pubDate>Thu, 19 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Tokens and Context Windows</title><link>https://thurley.dev/blog/ai-fundamentals-tokens-and-context/</link><guid isPermaLink="true">https://thurley.dev/blog/ai-fundamentals-tokens-and-context/</guid><description>How models break text into tokens, why context windows have limits, and what this means for cost, capability, and application design.</description><pubDate>Thu, 19 Mar 2026 00:00:00 GMT</pubDate></item><item><title>You&apos;re Using Claude Code. You&apos;re Not Really Using Claude Code.</title><link>https://thurley.dev/blog/claude-code-primer/</link><guid isPermaLink="true">https://thurley.dev/blog/claude-code-primer/</guid><description>Most developers type prompts and accept suggestions. That&apos;s 20% of what Claude Code can do. Here&apos;s the other 80%: rules, plugins, skills, hooks, subagents, MCP servers, and the prompt patterns that make all of it work.</description><pubDate>Fri, 13 Mar 2026 00:00:00 GMT</pubDate></item><item><title>AI Is Your Infinite Expert: You Just Need to Know How to Build</title><link>https://thurley.dev/blog/the-infinite-expert/</link><guid isPermaLink="true">https://thurley.dev/blog/the-infinite-expert/</guid><description>You don&apos;t need expertise in every language, framework, or protocol anymore. AI fills the syntax gap. Your job is knowing how to build software well.</description><pubDate>Fri, 06 Mar 2026 00:00:00 GMT</pubDate></item><item><title>The Business Case for Domain-Driven Design</title><link>https://thurley.dev/blog/business-case-for-domain-driven-design/</link><guid isPermaLink="true">https://thurley.dev/blog/business-case-for-domain-driven-design/</guid><description>Why Domain-Driven Design matters to leadership: reduced maintenance costs, faster feature delivery, scalable team autonomy, and systems that age well.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate></item><item><title>The Business Case for Extreme Programming</title><link>https://thurley.dev/blog/business-case-for-extreme-programming/</link><guid isPermaLink="true">https://thurley.dev/blog/business-case-for-extreme-programming/</guid><description>Why Extreme Programming matters to leadership: reduced rework, predictable delivery, lower key-person risk, and teams that get faster over time instead of slower.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Modern XP: The Code Quality Loop</title><link>https://thurley.dev/blog/modern-xp-the-code-quality-loop/</link><guid isPermaLink="true">https://thurley.dev/blog/modern-xp-the-code-quality-loop/</guid><description>TDD, refactoring, and simple design form a triangle. Remove any side and the structure collapses. Most teams attempt one or two. Here&apos;s why you need all three.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Modern XP: The Delivery Loop</title><link>https://thurley.dev/blog/modern-xp-the-delivery-loop/</link><guid isPermaLink="true">https://thurley.dev/blog/modern-xp-the-delivery-loop/</guid><description>Your CI pipeline running against a two-week-old branch isn&apos;t continuous integration. These two practices reduce the distance between writing code and learning from it in production.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Modern XP: The Feedback Loop</title><link>https://thurley.dev/blog/modern-xp-the-feedback-loop/</link><guid isPermaLink="true">https://thurley.dev/blog/modern-xp-the-feedback-loop/</guid><description>The planning game isn&apos;t estimation theater. Customer collaboration isn&apos;t a stakeholder demo every two weeks. XP&apos;s feedback practices predate modern product discovery, and they got it right.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Modern XP: The Knowledge Sharing Loop</title><link>https://thurley.dev/blog/modern-xp-the-knowledge-sharing-loop/</link><guid isPermaLink="true">https://thurley.dev/blog/modern-xp-the-knowledge-sharing-loop/</guid><description>Code review isn&apos;t pair programming. &apos;That&apos;s Steve&apos;s service&apos; isn&apos;t collective ownership. These two practices eliminate knowledge silos and make every other XP practice work at team scale.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Modern XP (Extreme Programming): Your Team Isn&apos;t Actually Doing It</title><link>https://thurley.dev/blog/modern-xp-your-team-isnt-doing-it/</link><guid isPermaLink="true">https://thurley.dev/blog/modern-xp-your-team-isnt-doing-it/</guid><description>Extreme Programming defined a system of reinforcing practices in the late 1990s. Most teams cherry-picked the easy parts and skipped the rest. Here&apos;s what got lost and why it matters.</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate></item><item><title>The Business Case for Spec-Driven AI Development</title><link>https://thurley.dev/blog/business-case-for-spec-driven-ai-development/</link><guid isPermaLink="true">https://thurley.dev/blog/business-case-for-spec-driven-ai-development/</guid><description>Why spec-driven, AI-assisted development matters to leadership — reduced rework, faster onboarding, knowledge durability, and predictable delivery.</description><pubDate>Wed, 04 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Spec-Driven Development on a Team: Scaling AI-Assisted Workflows Beyond Solo</title><link>https://thurley.dev/blog/spec-driven-development-on-a-team/</link><guid isPermaLink="true">https://thurley.dev/blog/spec-driven-development-on-a-team/</guid><description>What happens when spec-driven, AI-assisted development moves from a solo workflow to a team? The benefits, the tensions, and what it would actually look like in practice.</description><pubDate>Wed, 04 Mar 2026 00:00:00 GMT</pubDate></item><item><title>AI-Assisted, Spec-Driven Development: How I Built a SaaS App in 30 Days</title><link>https://thurley.dev/blog/ai-assisted-spec-driven-development/</link><guid isPermaLink="true">https://thurley.dev/blog/ai-assisted-spec-driven-development/</guid><description>How a 1,900-line specification document, a 245-line rules file, and Claude Code turned a solo developer into a full-stack team.</description><pubDate>Mon, 02 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Building DddSeedwork: Extracting DDD Building Blocks into a NuGet Package</title><link>https://thurley.dev/blog/building-dddseedwork/</link><guid isPermaLink="true">https://thurley.dev/blog/building-dddseedwork/</guid><description>How I extracted, improved, and published the DDD base classes I&apos;ve been copying between projects for years into a proper, tested NuGet package.</description><pubDate>Mon, 02 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Aggregates, Invariants, and Consistency</title><link>https://thurley.dev/blog/aggregates-invariants-and-consistency/</link><guid isPermaLink="true">https://thurley.dev/blog/aggregates-invariants-and-consistency/</guid><description>How to design aggregates that protect business rules, enforce invariants at their boundaries, and keep your domain model honest.</description><pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate></item><item><title>CQRS as a Supporting Architectural Pattern</title><link>https://thurley.dev/blog/cqrs-as-a-supporting-architectural-pattern/</link><guid isPermaLink="true">https://thurley.dev/blog/cqrs-as-a-supporting-architectural-pattern/</guid><description>How separating commands from queries gives you different optimization strategies for writing and reading, and when CQRS is worth the added complexity.</description><pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Designing and Integrating Bounded Contexts</title><link>https://thurley.dev/blog/designing-and-integrating-bounded-contexts/</link><guid isPermaLink="true">https://thurley.dev/blog/designing-and-integrating-bounded-contexts/</guid><description>How to identify bounded context boundaries, choose integration patterns, and keep contexts autonomous without creating silos.</description><pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Domain Events and Event-Driven Workflows</title><link>https://thurley.dev/blog/domain-events-and-event-driven-workflows/</link><guid isPermaLink="true">https://thurley.dev/blog/domain-events-and-event-driven-workflows/</guid><description>How domain events capture what happened in your system, decouple aggregates, and drive workflows without creating tight coupling between bounded contexts.</description><pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Event Storming in Practice</title><link>https://thurley.dev/blog/event-storming-in-practice/</link><guid isPermaLink="true">https://thurley.dev/blog/event-storming-in-practice/</guid><description>A deep dive into running effective event storming sessions, from facilitating workshops to translating discoveries into domain models.</description><pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Identity Modeling and Explicit Domain Types</title><link>https://thurley.dev/blog/identity-modeling-and-explicit-domain-types/</link><guid isPermaLink="true">https://thurley.dev/blog/identity-modeling-and-explicit-domain-types/</guid><description>How strongly-typed IDs, smart enums, value objects, and guard clauses make invalid states unrepresentable in your domain model.</description><pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Repositories and Persistence Boundaries</title><link>https://thurley.dev/blog/repositories-and-persistence-boundaries/</link><guid isPermaLink="true">https://thurley.dev/blog/repositories-and-persistence-boundaries/</guid><description>How the repository pattern keeps persistence concerns out of your domain model, why domain and data models should be separate, and what a clean persistence boundary looks like.</description><pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Ubiquitous Language and Naming Strategies</title><link>https://thurley.dev/blog/ubiquitous-language-and-naming-strategies/</link><guid isPermaLink="true">https://thurley.dev/blog/ubiquitous-language-and-naming-strategies/</guid><description>How to establish a shared language between business and code, and the naming strategies that keep domain models honest as systems grow.</description><pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Domain-Driven Design: A Practical Overview</title><link>https://thurley.dev/blog/ddd-practical-overview/</link><guid isPermaLink="true">https://thurley.dev/blog/ddd-practical-overview/</guid><description>A high-level overview of Domain-Driven Design: what it is, why it exists, and when it is an effective approach for building software systems. The first installment in a broader series.</description><pubDate>Sun, 15 Feb 2026 00:00:00 GMT</pubDate></item></channel></rss>